컴퓨터구조 강의노트 #2: Chapter 2: 컴퓨터의발전과정과성능 Chapter 3: 최상위에서본컴퓨터의기능및상호연결 2008. 3. 10. 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 강의노트다운로드사이트 http://ipsl.kut.ac.kr 1 컴퓨터시스템구조론 제 2 장컴퓨터의발전과정과성능 2 1
2.1 컴퓨터의간략한역사 제 1 세대컴퓨터 : 진공관을이용하여제작된컴퓨터들 3/108 ENIAC - 배경 ENIAC (Electronic Numerical Integrator And Computer) 은최초의범용디지털컴퓨터이다. Eckert and Mauchly 에의해개발된최초의일반목적용전자식디지털컴퓨터 University of Pennsylvania에서개발 무기의사정거리와궤도표작성을위해개발 1943년에개발을시작하여 1946년에완료 1955년까지사용 4/108 2
ENIAC 세부사항 10진수 (Decimal) 사용 10개의숫자를저장할수있는 20개의누산기 (accumulator) 로구성 스위치들을이용하여수동식으로프로그래밍 18,000 개의진공관을사용하여제작 무게 : 30 t 크기 : 15,000 square feet (140 m^2) 소모전력 : 140 kw 속도 : 초당 5,000 번의덧셈수행 5/108 폰노이만 (von Neumann) 의기계 ENIAC의수동식프로그래밍의문제를극복하기위해저장프로그램 (stored program) 개념도입 : 주기억장치에프로그램과데이터를저장 ALU : 2진수데이터에대하여연산을수행 제어유니트 : 기억장치로부터인출한명령어를해석하고수행 입출력장치 : 제어유니트에의해통제 실제시스템 : 폰노이만에의해개발된 IAS 컴퓨터 (1952년에개발완료 ) 6/108 3
IAS 컴퓨터의조직 그림 2.1 IAS 컴퓨터의조직 7/108 IAS 세부사항 주기억장치 : 1000 개의저장위치로구성 단어 (word) 길이 : 40 bit 데이터표현 :2 진수 단어당두개의 20 bit 명령어포함 그림 2.2: IAS 기억장치의형식 8/108 4
IAS 세부사항 ( 계속 ) CPU 내부레지스터들 기억장치버퍼레지스터 (Memory Buffer Register: MBR) - 기억장치에저장될단어를가지고있거나, 기억장치로부터읽혀진단어를저장하는데사용 기억장치주소레지스터 (Memory Address Register: MAR) - MBR로부터쓰여지거나읽혀질단어의기억장치주소를저장 명령어레지스터 (Instruction Register: IR) - 실행될명령어의 8-bit 연산코드를저장 명령어버퍼레지스터 (Instruction Buffer Register: IBR) - 기억장치로부터읽혀진단어의하위비트부분에위치한 20비트명령어를일시적으로저장하는데사용 9/108 IAS 세부사항 ( 계속 ) CPU 내부레지스터들 ( 계속 ) 프로그램카운터 (Program Counter: PC) - 기억장치로부터읽혀질다음명령어의주소를저장 누산기 (Accumulator: AC), Multiplier Quotient(MQ) - 계산에사용될데이터와 ALU의계산결과를일시적으로저장. 예를들어, 두개의 40 비트수를곱하면 80-비트수가되는데, 그들중의상위 40 비트는누산기에저장하고하위 40비트는 MQ에저장된다. 10/108 5
IAS 컴퓨터의확장된조직 11/108 상용컴퓨터들 (Commercial Computers) UNIVAC I (Universal Automatic Computer I) 1947년에 Eckert-Mauchly Computer 사에의해개발된최초의성공적인상용컴퓨터 과학및상업용응용에사용 기억장치용량과속도를향상시킨 UNIVAC II, UNIVAC 1103 개발로이어짐 IBM 701 시스템 1953 년에개발된최초의전자식저장프로그램컴퓨터 IBM 702, IBM 700/7000 계열시스템개발로이어짐 12/108 6
제 2 세대 : 트랜지스터 (Transistors) 진공관을대체한컴퓨터부품 크기축소 (smaller) 가격하락 (cheaper) 발열량감소 (less heat dissipation) 모래에서추출한반도체규소 (Silicon) 이용 1947년 Bell Lab에서 William Shockley 등에의해발명 13/108 제 2 세대컴퓨터 : 트랜지스터를이용한컴퓨터 [ 예 ] IBM : 7000 계열, DEC : PDP-1 (1957 년 ) 컴퓨터는새로운세대로바뀔때마다이전세대의컴퓨터들보다더고속화되고, 기억용량이증가하며, 크기가줄어드는특징을보인다. 14/108 7
제 3 세대 : 집적회로 (IC) 미세전자공학 (microelectronics) 의발전에의해 IC(Integrated Circuit) 출현 IC : 실리콘웨이퍼 (silicon wafer) 상에컴퓨터의기본소자인게이트 (gate), 기억장치셀 (memory cell) 및상호연결선들을집적시킨부품 효과 : 신뢰도증가 ( 고장률감소 ) 크기축소가격하락 15/108 IC 칩의제조과정 그림 2.6: 기본적인컴퓨터요소들 그림 2.7: 웨이퍼, 칩및게이트간의상관관계 16/108 8
컴퓨터부품의발전과정 진공관 (1946-1957) 트랜지스터 (1958-1964) SSI(Small Scale IC) : 1965 칩당 100 개의트랜지스터들포함 MSI(Medium Scale IC) : 1971 칩당 100-3000 개의트랜지스터들포함 LSI(Large Scale IC) : 1971-1977 칩당 3,000-100,000 개의트랜지스터들포함 VLSI(Very Large Scale IC) : 1978 - 현재 칩당 100,000-100,000,000 개의트랜지스터들포함 ULSI(Ultra Large Scale IC) : 현재 칩당 100,000,000 이상의트랜지스터들포함 17/108 무어의법칙 (Moore s Law) Intel의공동설립자인 Gordon Moore 는칩의집적밀도가계속증가하여칩에들어갈트랜지스터의수가매년두배로증가할것으로예측. 이법칙에근거한구체적결과들 : 1. 집적도가상승해도칩의가격은변하지않았다. 2. 패키징밀도가높아지면전기통로가짧아져서성능이향상되었다. 3. 크기가줄어들어설치가용이해졌다. 4. 전력소모가감소되고, 냉각장치가간단해졌다. 5. 상호연결이감소되어신뢰도가높아졌다. 18/108 9
CPU 칩내트랜지스터수의발전과정 19/108 반도체기억장치 (Semiconductor Memory) 1970 년 Fairchild 사에의해 256 비트를저장하는반도체기억장치칩개발 읽기후에도지워지지않으며, 코어 (core) 보다빠른기억장치 이후, 용량이매년두배로증가, 가격하락, 속도향상 10 세대 : 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M ( 매세대저장밀도 : 4 배 ) 20/108 10
마이크로프로세서 (Microprocessor) 인텔 (Intel): 1971 년에최초의마이크로프로세서인 4004 개발 CPU 의모든구성요소들을한개의칩에집적. 4 비트프로세서 1972 년 8008 개발 8 비트프로세서 특수목적용 1974 년 8080 개발 Intel 최초의일반목적용마이크로프로세서 (generalpurpose microprocessor) 21/108 1978년 16비트마이크로프로세서 8086 개발 1981년 Bell Lab과 HP이 32-비트단일-칩마이크로프로세서개발 1985 년 Intel 이 32 비트마이크로프로세서 80386 개발 22/108 11
2.2 성능을위한설계 마이크로프로세서 - 기반시스템들의주요응용들 영상처리 (image processing) 음성인식 (speech recognition) 화상회의 (videoconferencing) 멀티미디어저작 (multimedia authoring) 파일들에대한음성및비디오주석 (voice and video annotation of files) 23/108 성능향상기법들 분기예측 (Branch prediction) - 프로세서는소프트웨어를미리살펴보아서어떤분기들혹은명령어그룹들이다음에처리될것인지를예측 데이터흐름분석 (Data flow analysis) - 프로세서는명령어들사이의결과값혹은데이터의존성을분석함으로써명령어들의최적실행스케줄을찾아낸다. ( 불필요한지연방지효과 ) 선행실행 (Speculative execution) - 명령어들이프로그램실행과정에서실제나타나기전에미리명령어들을실행 24/108 12
성능균형 (Performance Balance) 성능불일치 (performance mismatch) 현상가속 프로세서속도향상 기억장치용량증가 기억장치속도가프로세서속도보다느림. 프로세서-기억장치간인터페이스의전송속도가매우뒤떨어짐. 25/108 DRAM 및프로세서의특성들 26/108 13
성능균형을위한해결책 한번에액세스할수있는비트수의증가 DRAM 을더 깊게 (deeper) 보다는더 넓게 (wider) DRAM 인터페이스의효율성증대 칩내부에캐쉬포함 기억장치액세스빈도의감소 프로세서와기억장치사이에효율적인캐쉬조직설치 상호연결대역폭 (interconnection bandwidth) 증대 고속버스 (high-speed buses) 사용 계층적버스 (hierarchical buses) 사용 27/108 펜티엄 8080 8086 세계최초의범용 8bit 마이크로프로세서 기억장치사이에 8 bit 데이터통로 16 bit 기계, 명령어를실행하기전에미리인출하기위한명령어캐쉬또는큐 (queue) 를포함 80286 8086을확장, 기억장치에대한주소지정을 1 M 바이트대신에 16 M 바이트까지가능 80386 첫 32 bit 기계 다중태스킹 (multitasking) 을지원하는최초의인텔프로세서 80486 더발전된강력한캐쉬 (Cache) 기술과고도의명령어파이프라이닝을사용 28/108 14
펜티엄 펜티엄 다수의명령어들을병렬로실행하는슈퍼스칼라기술을도입 펜티엄프로 레지스터재명명, 분기예측, 데이터흐름분석및선행실행등을사용하여성능행상 펜티엄 II 비디오, 오디오및그래픽데이터를효율적으로처리하기위하여설계 펜티엄 III 3 차원그래픽소프트웨어를지원하기위하여부동소숫점명령어추가 펜티엄 IV 멀티미디어기능이강화 아이테니엄 (Itanium) 29/108 컴퓨터시스템구조론 제3장최상위에서본컴퓨터의기능및상호연결 30 15
핵심요점들 컴퓨터시스템은프로세서 (CPU), 기억장치, I/O 요소들로구성되어 있고, 이들은프로그램의실행이라는컴퓨터의기본적인기능을수행하기위하여서로연결 (System Bus) 되어있다. 컴퓨터시스템의구성요소간상호연결을위해널리사용되고있는방법은여러개의선들로이루어지는공유시스템버스를사용 명령어사이클 (Instruction cycle) 은명령어인출 (Instruction fetch), 오퍼랜드인출 (operand fetch), 오퍼랜드저장및인터럽트검사로구성 버스설계에있어서의주요요소들에는중재, 타이밍, 그리고폭이포함된다. 31/108 3.1 컴퓨터의구성요소들 하드웨어만으로구성된시스템은융통성이없다. 일반목적용하드웨어는제어신호에따라다양한작업을처리할수있다 : 연결상태를변경할필요없이, 새로운제어신호들만제공해주면된다. 하드웨어가특정작업을수행하도록제어신호들을제공해주는일련의코드들 (codes) 혹은명령어들 (instructions) 의집합을소프트웨어 (software) 라고부른다. 32/108 16
하드웨어방식과소프트웨어방식 33/108 컴퓨터시스템의구성 응용소프트웨어 (application software) 시스템소프트웨어 (system software) 하드웨어 (hardware) 34/108 17
하드웨어와소프트웨어 하드웨어 (hardware) 컴퓨터정보들의전송통로를제공해주고, 그정보에대한처리가실제일어나게해주는물리적인실체들 소프트웨어 (software) 정보들이이동하는방향과정보처리의종류를지정해주고, 그러한동작들이일어나는시간을지정해주는명령 (command) 들의집합 시스템소프트웨어 (system software) : OS(WinXP, Unix, Linux 등 ) 응용소프트웨어 (application software) : 워드프로세서, 웹브라우저등 35/108 컴퓨터하드웨어의주요요소들 36/108 18
컴퓨터하드웨어의동작 컴퓨터의하드웨어는각단계에서코드를해석하여적절한제어신호들을발생한다. 각단계동안에산술혹은논리연산이수행된다. 그러한동작들을위한하드웨어구성요소들 (hardware components) 이필요하다. 37/108 컴퓨터의기본구조 컴퓨터는프로그램코드들을정해진순서대로실행 필요한데이터를읽어서 (read), 처리 (processing) 하고, 저장 (store) 38/108 19
최상위에서본컴퓨터구성요소들 39/108 CPU 내부레지스터들 PC(Program Counter) : 다음에실행할명령어의주소를저장하는레지스터 IR(Instruction Register) : 읽어온명령어를일시적으로저장하는레지스터 MAR(Memory Address Register) : 다음에읽거나쓸기억장소의주소를기억장치주소레지스터 MBR(Memory buffer Register) : 기억장치에저장될데이터혹은기억장치로부터읽은데이터를일시적으로저장하는버퍼레지스터 40/108 20
CPU 내부레지스터들 I/O AR(I/O Address Register) : I/O 장치의주소를저장하는레지스터 I/O BR(I/O Buffer Register) : I/O 모듈과 CPU 사이에교환되는데이터를일시적으로저장하는레지스터 41/108 정보의표현과저장 컴퓨터정보 2 진수비트 (1 과 0) 들로표현된프로그램코드와데이터 프로그램코드 기계어 (machine language) 기계코드 (machine code), 컴퓨터하드웨어부품들이이해할수있는언어 2진수비트들로구성 어셈블리언어 (assembly language) 어셈블리코드 (assembly code), 고급언어와기계어사이의중간언어 저급언어 (low-level language), 기계어와 1:1 대응 고급언어 (high-level language) 영문자와숫자로구성되어사람이이해하기쉬운언어 C, PASCAL, FORTRAN, COBOL 등 42/108 21
프로그램언어의변환과정 Z = X + Y LOAD A,X : 기억장치 X번지의내용을읽어레지스터 A 에적재 (load) ADD A,Y : 기억장치 Y 번지내용을읽어레지스터 A 에적재된값과더하고결과를다시 A 에적재 STOR Z,A : 그값을기억장치 Z 번지에저장 (store) 43/108 기계명령어의형식 연산코드 (op code) CPU가수행할연산을지정해주는비트들 비트수 = 3 이면, 지정할수있는연산의최대수는 2 3 = 8 오퍼랜드 (operand) 적재될데이터가저장된기억장치주소혹은연산에사용될데이터 비트의수 = 5 이면, 주소지정할수있는기억장소의최대수는2 5 = 32 44/108 22
프로그램코드와데이터의기억장치저장 단어 (word) 각기억장소에저장되는데이터의기본단위로서, CPU 에의해한번에처리될수있는비트들의그룹 45/108 3.2 컴퓨터의기능 컴퓨터의기본적인기능 : 프로그램의실행 - 프로그램은기억장치에저장되어있는명령어들로구성 - 프로세서는프로그램내의저장된명령어들을실행함으로써실제적인작업을수행 - 프로그램수행 ( 처리 ) 의주요요소 프로그램의처리 : 명령어인출 (Instruction fetch) 과명령어실행 (Instruction execution) 을반복함으로써이루어진다. 명령어사이클 (Instruction cycle): 한개의명령어실행을위해필요한과정 46/108 23
명령어의인출과실행 프로세서는아래두개의서브사이클 (subcycle) 들로이루어진명령어사이클 (instruction cycle) 을반복수행 : 인출사이클 (fetch cycle) 실행사이클 (execute cycle) 그림 3.3 기본명령어사이클 47/108 인출사이클 프로그램카운터 (PC) 는다음에인출할명령어의주소를가지고있다. 프로세서는 PC가가리키는기억장소로부터명령어를인출한다. PC 내용을증가시킨다. 명령어가명령어레지스터 (IR) 로적재된다. 프로세서는명령어를해석하고, 요구된동작을수행한다. 48/108 24
인출사이클 인출사이클의마이크로연산 t0 : MAR PC t1 : MBR M[MAR], PC PC + 1 t2 : IR MBR 단, t0, t1 및 t2는 CPU 클럭의주기 [ 첫번째주기 ] 현재의 PC 내용을 CPU 내부버스를통하여 MAR 로전송 [ 두번째주기 ] 그주소가지정하는기억장치위치로부터읽혀진명령어가데이터버스를통하여 MBR로적재되며, PC의내용에 1을더한다 [ 세번째주기 ] MBR에있는명령어코드가명령어레지스터인 IR 로이동 ( 예 ) CPU 클럭 = 100MHz ( 클럭주기 = 10ns ) 인출사이클 : 10ns x 3 = 30ns소요 49/108 인출사이클의주소및명령어흐름도 50/108 25
실행사이클 아래동작들중하나혹은그이상이수행된다 : 프로세서 - 기억장치 : 프로세서와기억장치간에데이터가 전송된다. 프로세서-I/O : 프로세서와 I/O 모듈간에데이터가전송된다. 데이터처리 : 데이터에대하여지정된산술혹은논리연산이수행된다. 제어 (control) : 실행될명령어의순서가변경될수있다 [ 예 ] 점프 (jump), PC에새로운명령어가있는번지를 Load 51/108 [ 사례 ] ADD addr 명령어 기억장치에저장된데이터를 AC 의내용과더하고, 그결과는다시 AC 에저장하는명령어 t0 : MAR IR(addr) t1 : MBR M[MAR] t2 : AC AC + MBR [ 첫번째주기 ] 데이터를저장할기억장치의주소를 MAR 로전송 [ 두번째주기 ] 저장할데이터를버퍼레지스터인 MBR로이동 [ 세번째주기 ] 그데이터와 AC의내용을더하고결과값을다시 AC에저장 52/108 26
ADD 명령어실행사이클동안의정보흐름 53/108 그림 3.4 가상적기계의특성들 54/108 27
프로그램실행예 프로세서는데이터를일시적으로보관하는누산기 (Accumulator: AC) 명령어와데이터의길이는 16 비트 연산코드 (opcode) 로 4 비트 : 2^4 = 16 가지의연산코드 (opcode) 지정가능 기억장치주소는최대 2^12 = 4096(4K) 개 프로그램실행예 기억장치의 940 번지의내용을 941 번지의내용과더하고, 결과를 941 번지에저장하는예 -> 그림 3.5 55/108 그림 3.5: 프로그램실행과정의예 56/108 28
인터럽트 (Interrupt) 다른모듈들 (I/O, 기억장치 ) 로하여금프로세서의정상적인처리과정을방해할수있게해주는메커니즘 발생요인 프로그램의잘못된실행 [ 예 ] 오버플로우 (overflow), 0에의한나누기 (division by zero) 타이머 (Timer) [ 예 ] 내부프로세서타이머에의해발생 : 선점 (pre-emptive) 을이용한다중태스킹 (multi-tasking) 을위해사용. I/O [ 예 ] I/O 제어기 (I/O controller) 에의해발생 하드웨어결함 (Hardware failure) [ 예 ] 기억장치패리티오류 (memory parity error) 발생시 57/108 인터럽트사이클 (Interrupt Cycle) 명령어사이클에추가되는새로운서브사이클로서, 프로세서로하여금인터럽트요구가있는지검사하고, 만약인터럽트가없다면, 다음명령어를인출한다. 만약인터럽트요구가대기중이라면 현재프로그램의실행을중단 프로그램상태 (program state) 를저장 PC를인터럽트처리루틴 (interrupt handler routine) 의시작주소로세트 인터럽트를처리한후, 프로그램상태를복원시키고, 원래프로그램의실행을계속한다. 58/108 29
인터럽트에의한제어의이동 59/108 인터럽트를포함한명령어사이클 60/108 30
61/108 프로그램타이밍 : I/O 대기시간이짧은경우 62/108 31
프로그램타이밍 : I/O 대기시간이긴경우 63/108 다중인터럽트 (Multiple Interrupts) 현재의인터럽트가처리되는동안, 다른인터럽트가발생하는경우. 처리방법 : 인터럽트불가능 (Interrupt Disabled) : 다른인터럽트를무시 인터럽트는대기하게되며, 현재의인터럽트에대한처리가종료된후에발생한순서대로처리 ( 그림 3.13a). 우선순위인터럽트 (Priority Interrupt) : 우선순위가더높은인터럽트가먼저처리되도록허용하는방식 ( 그림 3.13b). 64/108 32
그림 3.13 다중인터럽트발생시의제어이동 (a) 순차적인인터럽트처리 65/108 그림 3.13 ( 계속 ) (b) 우선순위인터럽트처리 66/108 33
다중인터럽트처리에서시간흐름의예 67/108 I/O 기능 I/O 모듈 ( 예 : 디스크제어기 ) 은프로세서와직접데이터를교환할수있다. 프로세서가특정주소를지정함으로써기억장치에대한쓰기혹은읽기를할수있는것과마찬가지로 I/O 모듈에대해서도기억장치에데이터를쓰기혹은읽기를할수있다. I/O 모듈이기억장치와직접데이터를교환할수있도록허용하는것이바람직하다. -> 프로세서는기억장치쓰기혹은읽기를할수있는권한을 I/O 모듈에게부여함으로써 I/O- 기억장치간의전송이프로세서의관여없이수행될수있다. -> 프로세서의부담을덜어줌 -> 이러한동작을직접기억장치액세스 (direct memory access, DMA) 라고한다. 68/108 34
3.3 상호연결 (interconnection) 조직 기본모듈들 ( 프로세서, 기억장치및 I/O 장치 ) 간의통신을위한경로 전송유형들 Memory to processor : 프로세서가기억장치로부터명령어와데이터를읽는다. Processor to Memory : 프로세서가기억장치에데이터를저장한다. I/O to Processor : 프로세서는 I/O 모듈을통하여 I/O 장치 로부터데이터를읽는다. Processor to I/O : 프로세서가 I/O 장치로데이터를전송한다. I/O to or from Memory : I/O 모듈이 DMA를통하여기억장치와직접데이터를교환한다. 69/108 주요모듈들의입출력신호들 70/108 35
3.4 버스 (Bus) 두개혹은그이상의장치들을연결하는공유전송매체. 시스템버스 (system bus) : 컴퓨터의주요모듈들 ( 프로세서, 기억장치, I/O) 을상호연결하는버스. 버스의종류 데이터버스 (data bus) : 모듈들사이의데이터전송통로로서, 8, 16, 32 개의선들로구성 ( 버스폭 = 선의수 ) 주소버스 (address bus) : 데이터가읽혀지거나쓰여질기억장소의주소를전송하는통로이며, 주소선의수 ( 주소버스폭 ) 에의해전체기억장치용량이결정 제어버스 (control bus) : 데이터버스와주소버스의사용을제어하는신호들을전송하는통로 71/108 버스에의한상호연결 그림 3.16 버스상호연결방식 72/108 36
제어신호들의기능 기억장치쓰기 (memory write) 버스에있는데이터를주소지정된위치에쓴다. 기억장치읽기 (memory read) 주소지정된기억장소의데이터를버스로읽어낸다. I/O 쓰기 (I/O write) 버스에있는데이터를주소지정된 I/O 포트로출력시킨다. I/O 읽기 (I/O read) 주소지정된 I/O 포트에서데이터를읽어버스에싣는다. 전송확인 (transfer acknowledge) 데이터가버스로부터받아들여졌거나버스상에실렸다는것을확인 73/108 제어신호들의기능 버스요구 (bus request) 어떤모듈이 DMA 를위하여버스사용을원하고있다는것을가리킨다. 버스승인 (bus grant) 버스를요구한모듈에게버스의사용권이허가되었다는것을가리킨다. 인터럽트요구 (interrupt request) 인터럽트가대기하고있다는것을가리킨다. 인터럽트확인 (interrupt acknowledge) 대기하던인터럽트가인식되었다는것을통보 클럭 (clock): 동작들을동기화시키기위해사용 리셋 (reset): 모든모듈들을초기화 74/108 37
버스구조의전형적인물리적구현 75/108 CPU 와시스템버스 주소버스 : 단방향성 (uni-directional bus) 주소가 CPU로부터기억장치혹은 I/O 장치들로전송되는정보이기때문 데이터버스, 제어버스 : 양방향성 (bidirectional) 읽기와쓰기를모두해야하기때문 76/108 38
CPU 와기억장치 기억장치쓰기동작 CPU가데이터를저장할기억장소의주소와저장할데이터를각각주소버스와데이터버스를통하여보내면서동시에쓰기신호를활성화 기억장치쓰기시간 (memory write time) CPU 가주소와데이터를보낸순간부터저장이완료될때까지의시간 77/108 CPU 와기억장치 ( 계속 ) 기억장치읽기동작 CPU가기억장치주소를주소버스를통하여보내면서읽기신호를활성화 일정지연시간이경과한후에기억장치로부터읽혀진데이터가데이터버스상에실리며, CPU는그데이터를버스인터페이스회로를통하여읽음 기억장치읽기시간 (memory read time) 주소를해독 (decode) 하는데걸리는시간과선택된기억소자들로부터데이터를읽는데걸리는시간을합한시간 78/108 39
기억장치액세스동작의시간흐름도 읽기 79/108 CPU 와 I/O 장치의접속 CPU - 시스템버스 I/O 장치제어기 I/O 장치 80/108 40
I/O 장치제어기 (I/O device controller) CPU로부터 I/O 명령을받아서, 해당 I/O 장치를제어하고, 데이터를이동함으로써명령을수행하는전자회로장치 ( 키보드제어기, 프린터제어기등 ) 상태레지스터 I/O 장치의현재상태를나타내는비트들을저장한레지스터 준비상태 (RDY) 비트, 데이터전송확인 (ACK) 비트, 등 데이터레지스터 CPU와 I/O 장치간에이동되는데이터를일시적으로저장하는레지스터 81/108 키보드의데이터입력과정 키보드제어기 키보드의어떤한키 (key) 를누르면, 그키에대응되는 ASCII 코드가키보드제어기의데이터레지스터에저장되고, 동시에상태레지스터의 In_RDY 비트가 1로세트 CPU 1. 키보드제어기로부터상태레지스터의내용을읽어서 In_RDY 비트가세트되었는지검사 (In_RDY 비트는데이터레지스터에외부로부터데이터가적재되었는지를표시 ) 2. 만약세트되지않았으면, 1번을반복하며대기. 만약세트되었다면, 데이터레지스터의내용을읽음 82/108 41
프린터의데이터출력과정 CPU : 프린터제어기의상태레지스터의내용을읽어서 Out_RDY 비트검사 (Out_RDY 비트는프린터가출력할준비가되었는지를표시 ) 만약세트되지않았으면, 1번을반복하며대기만약세트되었다면, 프린트할데이터를프린터제어기의데이터레지스터에씀 프린터제어기 : 데이터레지스터의내용을프린터로보내고, 프린터의하드웨어를제어하여인쇄 83/108 CPU 와보조저장장치의접속 보조저장장치들 ( 디스크, 플로피디스켓, CD- ROM 등 ) 도각장치를위한제어기를통하여키보드나프린터와유사한방법으로접속 차이점 : 데이터전송단위 키보드, 프린터 : 바이트 (8 비트 ) 단위로전송 보조저장장치 : 블록 (512/1024/4096 바이트 ) 단위로전송 제어기내에한블록이상을임시저장할수있는데이터버퍼필요 트랙버퍼 (track buffer) 하드디스크상의한트랙의내용을모두저장할수있는디스크제어기내의데이터버퍼 84/108 42
컴퓨터시스템의전체구성 85/108 다중프로세서시스템의구조 86/108 43
다중버스계층 (Multiple-bus hierarchy) 단일버스의문제점 전파지연 (propagation delay) 의증가 : 많은장치가버스에연결될수록버스의사용을조정 ( 중재 ) 하는시간이길어짐. 버스병목현상발생 : 데이터전송요구량이증가하여버스용량에근접하게되면성능병목발생. ( 데이터전송률증가나버스폭의확대로부분적으로는해결가능하지만, 결국단일버스로는한계 ) 계층적구조를가진다중버스사용으로해결 87/108 (a) 전통적인계층적다중버스조직 88/108 44
(b) 고성능계층버스조직 (bridge 이용 ) 89/108 버스의유형 전용버스 (Dedicated bus) : 기능이지정되는버스 [ 예 ] 데이터버스, 주소버스 다중화버스 (Multiplexed bus) : 제어신호에의해여러목적으로사용할수있는버스. [ 예 ] 주소 / 데이터버스 : 주소유효 (address valid) 신호이용. 장점 : 선의수가적기때문에공간과비용절감단점 : 제어회로복잡, 시분할 (time multiplexing) 로인한성능저하 90/108 45
버스중재 (Bus Arbitration) 버스에연결된여러모듈들이동시에버스를사용하려는경우에, 한번에한모듈씩순서대로버스를사용하도록조정해주는기능. 종류 중앙집중식 (centralized) : 버스중재기 (bus arbiter) 가한개만존재하는방식. 분산식 (distributed) : 각모듈이중재기를가지고있는방식. 91/108 타이밍 (Timing) 버스상에서사건들 (events) 이발생되는순서 동기식타이밍 (synchronous timing) 사건의발생이클럭 (clock) 신호에의해결정 제어버스가클럭신호선 (clock line line) 을포함 클럭사이클 ( 혹은버스사이클 ) : 클럭신호의 0과 1이한번반복되는시간 버스신호들은클럭의상승에지 (leading edge) 에서변화 한사건은한개의클럭사이클동안에발생 그림 3-19a : 동기식읽기동작의타이밍 92/108 46
동기식읽기동작의타이밍 93/108 비동기식타이밍 (asynchronous timing) 버스상의사건발생이이전사건에의해결정 그림 3.19b 참조 장단점비교 동기식타이밍 : 구현과검증이용이융통성부족 비동기식타이밍 : 속도가높은장치에의한성능상의이득을얻을수있다. 94/108 47
비동기식읽기동작의타이밍 95/108 비동기식읽기동작의타이밍 96/108 48
버스폭 (bus width) 버스를통하여한번에전송할수있는비트수 데이터버스폭 : 시스템성능에영향 (8,16,32,64, 64 128 비트 ) 주소버스폭 : 기억장치의최대용량에영향 ( 폭이넓을수록기억장치용량증가 ) 97/108 3.5 PCI (Peripheral Component Interconnect) 고대역폭프로세서 - 독립적버스 고속 I/O 서브시스템들 ( 그래픽디스플레이접속기, 네트워크인터페이스제어기, 디스크제어기 ) 에사용 66 MHz, 64 개의데이터선사용가능 (528 Mbytes/sec 혹은 4.224 Gbps 의전송률 ) Intel이펜티업-기반시스템들을위하여 1990년에 PCI 관련일시작, 현재 PCI 2.2 Version 단일및다중프로세서시스템들을포함한여러가지형태의마이크로프로세서-기반시스템들을지원하기위하여설계일반적인모든기능을제공해주며, 동기식타이밍 (synchronous timing) 과중앙집중식중재방식 (centralized arbitration scheme) 을사용 98/108 49
3.5 PCI (Peripheral Component Interconnect) 99/108 3.5 PCI (Peripheral Component Interconnect) 100/108 50
PCI 조직 32-Bit 혹은 64-Bit 버스로구성 49 개의필수적인 PCI 신호들 ( 표 3.3) 다음과같은기능그룹들로분류 (49 개의필수 ) 시스템핀들 : 클럭과리셋신호 주소및데이터핀들 (AD) 인터페이스제어핀들 : 트랜잭션들의타이밍을제어하고, 구동자 (Initiator) 와목적지 (Target) 사이의조정역할 중재핀들 : 다른 PCI 신호선들과는달리, 이들은공유선들이아니다. 각 PCI 마스터는한쌍식의중재선들을가지며, 이선들에의해 PCI 버스중재기와직접연결된다. 오류보고핀들 : 패리티와다른오유들을보고하는데사용 101/108 PCI 조직 선택적신호선들 (51 개 )- 표 3.4 인터럽트핀들 캐쉬지원핀들 64 비트버스확장핀들 JTAG/boundary scan 핀들 102/108 51
PCI 명령들 버스동작은구동자 (Initiator) 혹은마스터 (Master) 와목적지 (Target) 사이의트랜잭션 (Transaction) 형태로일어난다. 버스마스터가버스의제어권을획득했을때, 그다음에일어날트랜잭션의형식을결정한다. 트랜잭션의주소단계 (address phase) 동안에는 C/BE 선들이트랜잭션형식을나타내기위하여사용된다. 명령어들 인터럽트확인 : 어떤장치가 PCI 버스상의인터럽트제어기로서기능을수행하기위하여사용되는읽기명령 특수사이클 : 마스터가메지지를하나혹은그이상의목적지들로방송하는데사용 I/O 읽기 I/O 쓰기 기억장치읽기 (Memory Read) : 표 3.5 기억장치읽기선 (Memory Read Line) : 표 3.5 103/108 PCI 명령들 명령어들 ( 계속 ) 기억장치읽기다중 (memory read multiple): 표 3.5 기억장치쓰기 기억장치쓰기및무효화 (invalidate) 구성읽기 (configuration read): 마스터로하여금 PCI로접속된장치내의구성파라미터들을읽음구성쓰기 (configuration write): 구성파라미터들을변경및갱신이중주소사이클 (dual address cycle) ㅣ마스터가 64 비트주소지정을사용 104/108 52
데이터전송 ( 그림 3.23 PCI 읽기동작 ] 105/108 버스중재 (arbitration) PCI 는중앙집중식, 동기식중재방식을사용 각마스터가별도의요구 (REQ) 및허가 (GNT) 신호를가짐 이러한신호선들이중앙중재기에접속 버스에대한액세스를허가하기위하여간단한요구-허가제어신호가이용 중재기는 First-come-first-served 방식, 라운드로빈방식혹은우선순위방식 그림 3.24 PCI 버스중재기 106/108 53
Homework #1 3 장연습문제 : 3.1, 3.3, 3.4, 3.5 Due Date: ~ 다음주수업시간전까지 107/108 Thank You! 수고하셨습니다. 108/108 54