1. Introduction
-1. The Computer Revolution
makes novel applications feasible : novel (새로운). 휴대폰, 검색엔진, 등.
컴퓨터가 많이 pervasive(퍼져있는)
-2. Classes of Computers(컴퓨터의 종류)
Personal : 퍼스널 컴퓨터. 우리가 평상시 사용하는 컴퓨터. General purpose, variety of software. 일반적인 목적, 소프트웨어의 다양성. Subject to cost/performance tradeoff(비용과 성능 트레이드오프 적용)
Workstations : High-performance. reliability(신뢰성). 그래픽, 영상편집, 캐드 등.
Server : 서버 컴퓨터. Network based(네트워크 기반). High capacity, performance, reliability, range of the size가 크다. 다양한 크기.
빠른 네트워크와 연결되어 다른 서버와 인터넷을 사용. 랙타입 / 타워/ 블레이드 등 다양한 타입 존재.
Supercomputers : 슈퍼컴퓨터. Type of server. 과학 기술의 집약체. 최고의 성능을 제공하지만 전체 컴퓨터 시장의 작은 부분을 차지.
Embedded computers : 임베디드 컴퓨터. Hidden as components of systems. 시스템 구성에 숨겨져있다. 차, 비행기 등이 임베디드 컴퓨터를 갖고 있다. 엄격한 전력, 비용 등의 제한. 다양한 타입 존재.
-3. The PostPC Era
스마트폰 수요 급격 증가. pc, cell phone 수요 하락 중. 태블릿은 증가하다 하락 중. 우리는 지금 Post PC 시대이다.
Personal Mobile Device(PMD) : Battery operated. 인터넷 연결. 스마트폰, 태블릿, 전자 안경 등.
Cloud computing : Warehouse(창고) Scale Computers(WSC), Software as a Service(SaaS). 아마존과 구글. 일반적으로는 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술을 의미.
2. What is a Computer?
- 1. Computer : a programmable usually electronic device that can store, retrieve, and process data
- 2. 폰노이만 아키텍쳐(stored-program computer) ***** : 프로그램과 데이터 모두 메모리에 저장되어있음.
-3. Layered Structures of Computers
ISA : 하드웨어와 소프트웨어의 interface. 하드웨어의 복잡한 동작을 하지만, 세부동작 자체를 외울 필요는 없다. ISA를 사용하여 하드웨어를 사용할 수 있다는 것만 기억하면 된다.
-4. Below Your Program
Application software : 우리가 매일 사용하는 어플리케이션. 하이레벨언어(C, Java, etc.)로 쓰여진다.
System software : 어플리케이션 소프트웨어 밑에는 시스템 소프트웨어가 있다. Compiler, Operating System이 포함되어 있다.
Hardware : 시스템 소프트웨어 밑에는 하드웨어가 있다. Processor, memory, I/O controllers가 포함되어 있다.
-5. Levels of Program Code
컴파일러가 High-level language를 Assembly language로, Assembler가 어셈블리를 바이너리로 전환해준다.
Hardware는 Binary instruction을 사용.
-6. Inside the Processor(CPU)
Datapath : 데이터에 대한 작업 수행. Performs operations on data.
Control : Sequences datapath, memory, ...
Cache memory : small fast SRAM memory for immediate access to data
-7. Memory
Volatile main memory : 휘발성. 빠르다. 근데 컴퓨터 끄면 날아간다. DRAM.
Non-valatile secondary memory : 비휘발성. 느리다. 그래도 컴퓨터 꺼도 남아있다. Magnetic disk, Flash memory, Optical disk(CDROM, DVD)
3. Technology Trends
-1. Technology Trends
performance는 올라가고, cost는 내려가는 중.
-2. Power Trends
Power = Capacitive load * Voltage^2 * Frequency
frequency 올라가면 Power도 올라간다.
power가 계속 올라가다가 최근 발전하지 않았다. 왜일까? 전력을 더 늘리지 못하고 포화. Clock을 높이고(performance가 올라가므로), Frequency를 높이면 파워가 올라간다. 근데 이러면 쿨링시스템 필요하다. 온도 낮추기 위해서. 쿨링시스템 적용해도 어느정도 문제가 남는다. 그래서 Power를 낮추었다. 그래서 파워 상승률이 낮아진것.
근데 파워 낮추면 Voltage내려가고, 이는 Freq도 내려가는 것. 결국 performance도 내려간다. power wall이다.
-3. Reducing Power
Power wall : 우리는 더이상 voltage를 줄이기도 힘들고, heat를 더 줄이기도 힘들다. 전력 소모를 줄이려면 frequency를 줄이거나 voltage를 낮춰야 한다. frequency를 낮추면 performance(성능)에 타격이 가고, voltage를 낮추면 전력이 더 세게 필요하다. 전력문제, 명령어 중심의 병렬성의 한계, 메모리 발전의 한계로 Uniprocessor 성장세 주춤.
그렇다면 어떻게 performance를 높일 수 있을까? multi processors!!!!!!!!
-4. Multiprocessors == Multi-core Processors
Uniprocessor의 한계로 인해 Multicore microprocessors 등장~~~~ 칩 당 하나 이상의 프로세서.
Requires explicitly parallel programming. 직접적으로 병렬 프로그래밍 할 필요가 생겼다. instruction 레벨 parallelism과 비교하자면, Hardware executes multiple instructions at once하고, Hidden from the programmer하다. 즉, 하드웨어는 여러개의 명령어를 한번에 실행하고, 프로그래머로부터 숨긴다.
그리고 programming for performance, Load balancing, Optimazing communication and synchronization에 대한 수요가 생겼다.
[요약]
1. Introduction
-1. The Computer Revolution
-2. Classes of Computers : Personal(General purpose) / Workstations(High-performance) / Server(High capacity, Network based) / Supercomputers(Type of server) / Embedded computers(Hidden as components of systems)
-3. The PostPC Era : PMD / Cloud Computing
2. What is a Computer?
-1. Computer : a programmable usually electronic device that can store, retrieve, and process data
-2. 폰노이만 아키텍쳐
-3. Layered Structures of Computers : ISA(Instruction Set Architecture) - HW와 SW의 인터페이스
-4. Below Your Program : Application Software / System Software(OS, Compiler) / Hardware(Processor, memory, I/O controllers)
-5. Levels of Program Code : High-level language ---(Compiler)--- Assembly language ---(Assembly)--- Binary
-6. Inside the Processor(CPU) : Datapath, Control
3. Technology Trends
-1. Technology Trends : performance 올라가고, cost 내려가는중.
-2. Power Trends : 전력 늘리지 못하고 점점 포화(Power = Capacitive load * Voltage^2 * Frequency)
-3. Reducing Power : Power Wall(voltage, heat를 더 줄이기 힘들다. 전력 소모를 줄이려면 frequency나 voltage를 낮춰야 한다. frequency를 낮추면 performance(성능)에 타격이 가고, voltage를 낮추면 전력이 더 세게 필요하다.)
-4. Multiprocessors : Requires explicitly parallel programming
[주요]
Cost/performance is improving(개선중)
- Due to underlying technology development
Hierarchical layers of abstraction
- In both HW and SW
Instruction set architecture
- The HW/SW interface
Power is a limiting factor
- Use parallelism to improve performance