KOCW 최규상 교수님 컴퓨터구조 강의 정리
이 글은 공부한 것을 복습 및 기록하기 위한 게시물입니다.
잘못된 정보가 기입되어 있을 수 있으니 주의해주시기 바랍니다.
참고 : 컴퓨터 구조 및 설계 - David A. Patterson,John L. Hennessy
강의 링크 : http://www.kocw.net/home/cview.do?lid=83030621fe62e08e
1. Components of a Computer
많은 컴퓨터(데스크탑, 서버, 임베디드)에서 기본적으로 같은 구성요소를 가지고 있다.
- User-interface Device
디스플레이, 키보드 마우스 등등 - Storage Devcies
HDD, CD/DVD 등등 - Network
스마트폰 혹은 태블릿PC에서는 터치스크린도 사용되고 있다.
LCD 스크린에서는 프레임 버퍼에 데이터를 쓰게 되면 화면에 해당 데이터들이 표시되게 된다.
2. Inside the Processor(CPU)
CPU는 3가지 구성요소가 있다.
- Datapath : 연산들을 수행하기 위한 여러 유닛들의 구조
데이터가 어떤 operations을 해서 쭉 흘러가는지. 데이터가 어떻게 연산이 되는지 - Control : 명령어를 해석하고 레지스터와 ALU 사이의 명령 흐름을 제어한다.
프로세스의 다양한 컴포넌트를 컨트롤 하게 된다. - 캐시메모리 - 속도가 빠른 장치와 느린 장치 사이에서 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리를 말한다.
CPU 안에 아주 작고 빠른 SRAM을 가지고 있다
이런 SRAM으로 구성된 캐시메모리에 자주 사용되는 데이터를 올려놓아 빠르게 엑세스하게 된다.
애플의 A5 CPU이다.
데이타패스가 4개가 있으며
ARM 코어가 있다. 코어는 연산을 하는 곳이다.
하단에는 SRAM에 대한 인터페이스도 있있으며
I/O 인터페이스, USB 인터페이스 또한 있다.
3. Abstractions
아주 복잡한 문제를 풀 때 추상화 기법이 효과적이다.(단순화)
컴퓨터 구조에서는 ISA가 있다.
ISA는 명령어 집합 구조이다.
H/W S/W 인터페이스이며
S/W는 Instruction으로 구성되어 있고 H/W는 Instruction을 실행한다.
Instruction을 통해 데이터를 주고 받게 된다.
ABI는 단순히 말하면 ISA와 시스템 소프트웨어의 인터페이스이다.
Implementation은 ISA를 실제로 어떻게 구현할 것인지에 대한 내용을 말한다.
4. A Safe Place for Data, Networks
DRAM은 휘발성이다.
휘발성은 전원이 나가면 데이터들이 사라지게 된다.
저장장치는 비휘발성이다.(HDD, 플래시메모리, SSD)
네트워크는 LAN, WAN, WIFI, 블루투스 등이 있다.
5. Technology Trends
무어의 법칙과 관련이 있다.
X축은 시간(연도), Y축은 성능을 뜻한다.
시간에 따라 성능은 급격히 증가하게 된다.
예전에 비해서 DRAM을 아주 싼가격에 대량으로 사용할 수 있게 되었다.
표와 같이 시간이 지남에 따라 아주 급격히 성능이 향상되게 된다.
6. Semiconductor Technology
실제 칩을 만든다는 것은 실리콘에 기판을 새겨 넣는 것을 말한다.
Conductors, Insulators, Switch를 동작이 되도록 하는 것이다.
실리콘을 얇계 펴 Wafer를 만들고 가공단계를 거쳐 패턴을 입히게 된다.
패턴을 테스트하고 패키지를 만든다.(실제 칩을 만드는 것)
각각의 칩이 제대로 동작하는지를 체크하며 테스트가 완료되면 사용자에게 판매가 되는 것이다.
Yield란 수율을 뜻하며 Wafer당 동작하는 die의 비율을 뜻한다.
수율은 하나의 웨이퍼에서 칩이 몇개가 성공하는지 보는 것이다.
7. Performance
7-1. Defining Performance
비행기의 다양한 특성을 보여주는 그래프이다.
1번째 그래프(좌측 상단)는 한번에 태울수 있는 승객의 수를 나타내는 것이다.
2번째 그래프(우측 상단)는 한번에 얼마나 멀리 날 수 있는지를 나타내는 것이다.
3번째 그래프(좌측 하단)는 비행기의 속도를 나타내는 것이다.
4번째 그래프(우측 하단)는 한번에 태울수 있는 승객의 수와 속도를 곱한 것이다.
이중에서 어떤 비행기가 가장 좋은 성능을 가지고 있다고 볼 수 있을까?
성능의 기준을 승객수로 본다면 Boeing 747이 가장 좋고
기준을 거리로 본다면 Douglas DC-8-50이 가장 좋고
속력으로 본다면 BAC/Sud Concorde가 가장 좋다.
성능이란 어떻게 정의하느냐에 따라 달라지게 된다.
7-2. Response Time and Throughput
컴퓨터에서의 성능이란 무엇인가
- Response time : task를 수행하는데 어느정도의 시간이 걸리는지
- Throughput : 단위시간당 얼마나 많은 task를 수행할 수 있는지
다음 두가지 경우에 따라서 Response time과 Throughput은 어떠한 영향을 받는가
첫번째는 기존의 프로세서보다 더빠른 CPU를 사용할 경우 이다.
당연히 Response time과 Throughput 모두 영향을 받는다.
새로운 CPU를 사용하면 일을 더 빨리하게 된다.
따라서 Response time은 줄어들고 Throughput은 높아지게 된다.
두번째는 기존의 프로세서와 동일한 프로세서를 추가하는 것이다.
Response time은 변하지 않으나 Throughput은 높아지게 된다.
2개의 코어에서 각각 서로 다른일을 할 수 있기 때문에 단위시간당 하는일은 더 많아지게 되는 것이다.
일반적으로 Response time을 줄이면 Throughput은 같이 증가하게된다.
Response time은 Throughput에 영향을 주지만
Throughput은 Response time에 영향을 주지 않을 수 있다.
성능은 주로 Response time으로 표현할 수 있게 된다.
7-3. Relative Performance
Response time은 execution time(실행 시간)이라 할 수 있다.
execution time이 짧을수록 더 좋은 성능을 나타낸다.
'X는 Y보다 N배 빠르다'는 것은 execution time Y를 execution time X로 나눴을 때N이 나오면
X가 Y보다 n배 빠르다라고 할수 있는 것이다.
성능과 execution time은 반비례관계이다.
A는 10초가 걸리고 B는 15초가 걸린 다고 할때
이런 경우 execution time B / execution time A는 1.5가 된다.
이런 경우 A는 B보다 1.5배 빠르다라고 표현할 수 있다.
7-4. Measuring Execution Time
Elapsed time이란 Response time의 총합을 나타낸다.(오퍼레이션의 시작부터 끝까지 걸린 시간)
CPU 걸린 시간과 I/O에서 걸린 시간, 운영체제에서 걸린 시간을 모두 포함한다.
즉, 시스템 전체의 성능을 정의하게 된다.
CPU time은 어떤 일을 처리할 때 CPU에서 걸린 시간을 나타낸다.
I/O에서 걸린 시간과 CPU가 다른일을 할 때 시간을 제외하게 된다.
CPU time은 user CPU time과 System CPU time으로 나뉘게 된다.
user CPU time은 사용자가 사용할 때 시간을 나타내며
System CPU time은 운영체제가 사용할 때 시간을 나타낸다.
프로그램들은 CPU 또는 시스템 성능에 의해 서로 다르게 영향을 받을 수 있다.
어떤 프로그램은 CPU에 영향을 받을 수 있고 어떤것은 I/O의 영향을 받을 수 있는 것이다.
7-5. CPU Clocking
Rising Edge에서 다음 Rising Edge까지를 Clock period라고 하며 하나의 Clock Cycle이다.
단위는 시간의 단위를 쓴다.
Clock Frequency(rate)는 초당 몇 Clock Cycle이 존재하는지를 나타낸다.
Hz 단위를 사용하게 된다.
7-6. Machine Clock Rate
Clock Frequency는 Clock period와 반비례 관계이다.
Clock Cycle은 1/Clock Rate 이다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
6. Instructions: Language of the Computer 2 (0) | 2021.04.10 |
---|---|
5. Instructions: Language of the Computer 1 (0) | 2021.04.08 |
4. Computer Avstractions and Technology 4 (0) | 2021.04.03 |
3. Computer Avstractions and Technology 3 (0) | 2021.03.31 |
1. Computer Avstractions and Technology 1 (0) | 2021.03.28 |