기억 장치(computer data storage)는 데이터(자료)를 일시적으로, 또는 영구히 보존하는 장치를 말한다. 비슷한 말로 저장 장치라고도 하는데 이때는 대체로 비휘발성의 기억 장치를 의미한다. 기억 장치는 주기억 장치와 보조 기억장치로 나눌 수 있다. 메모리(memory)는 종종 '기억 장치'라는 용어와 혼용되기도 하지만, 대체로는 주기억장치를 말하며 특히 램을 가리키는 경우가 많다.
양방향
8bit, 16bit, 32bit
주소버스
데이터 전송을 위한 주소 지정용
단방향
CPU에서 메모리나 I/O 로 주소를 지정하는 경우는 있지만, CPU에는 주소가 없기 때문에 CPU를 향한 주소 지정은 할 수 없음
사용할 기억장치의 용량에 따라서 주소버스의 폭이 결정됨. 16bit -> 2^16 (=65,536) -> 64Kbyte. 단, CPU의 단어(word)가 32bit 인 경우
byte 단위로 주소를 지정할 경우, 주소 버스의 폭이 16bit라 가정 -> 64Kbyte
혹은, 단어(word)로 주소를 지정할 경우, 16bit -> 64 * 4 = 256Kbyte
제어버스
제어 신호 전송용, 양방향 (제어신호에 대한 응답신호)
기억장치 쓰기(memory write) 신호
저장된 기억 장소에 데이터가 쓰여지게(저장되게) 한다
기억장치 읽기(memory read) 신호
지정된 기억 장소의 데이터를 읽어서 버스에 실리게 한다
I/O 쓰기(I/O write) 신호
지정된 I/O 장치로 데이터가 출력되게 한다
I/O 읽기(I/O read) 신호
지정된 I/O 장치로부터 데이터를 읽어서 데이터 버스에 실리게 한다
I/O 장치의 접속 방식
프로그램을 이용한 I/O (Programmed I/O)(=프로그램된 I/O) , ( = *폴링방식(polling) )
CPU가 반복적으로 I/O장치의 상태를 검사하면서 I/O동작을 처리하는 방식
장점 : 별도의 h/w가 필요치 않음
단점 : I/O 처리중에는 CPU가 다른 연산처리를 하지 못함
인터럽트를 이용한 I/O (Interrupt_driven I/O)
CPU가 I/O제어기로 명령을 보낸 후, CPU는 다른 작업을 함
I/O제어기는 입출력작업이 완료되면 CPU로 인터럽트 신호를 보냄
CPU는 인터럽트 신호를 받으면, 현재 하고있는 작업을 중단하고 다시 다음 입출력 명령을 내림
DMA를 이용한 I/O (Direct Memory Access I/O)
CPU개입없이 I/O장치와 기억장치간에 대량의 데이터를 전송하는 방식
I/O 프로세서 방식 (I/O Processor, IOP)( 프로세서 = CPU )
DMA방식을 확장하여 별도의 I/O프로세서를 사용하는 방식
교수가 소작업만을 도와줄 조교를 하나 고용하는 것에 비유
I/O 주소지정 방식 (기억장치 사상 I/O, Memory-mapped I/O)
기억장치 주소영역의 일부분을 I/O장치의 주소영역으로 사용하는 방식
장점 : 동일한 명령어로 기억장치와 I/O장치를 억세스 할 수 있음
단점 : 기억장치의 주소공간이 줄어듬
분리형 I/O (고립형 I/O, I/O-mapped I/O)
I/O 장치의 주소공간이 기억장치 주소공간과 별도로 할당
장점 : 기억장치의 주소공간이 줄어들지 않음
단점 : 기억장치용, I/O 장치용 명령어가 따로 있어야함
버스 중재
폴링 방식(Polling scheme : 주기적 검사 방식)
버스 중재기가 각 마스터들이 버스 사용을 원하는지를 주기적으로 검사하여 버스 승인 여부 결정