Computer Science/Computer Architecture 5

System Bus

System Bus 컴퓨터를 구성하는 요소(CPU, I/O장치, Memory)들을 연결해주는 통로다. 여러 하드웨어들을 물리적으로 연결해 전기적 신호로 데이터를 주고받을 수 있게 해준다. 종류는 크게 세 가지로 데이터 버스, 주소 버스, 제어 버스가 있다. 데이터 버스 CPU와 다른 장치 사이에서 데이터가 오가는 통로. Memory와 I/O장치의 명령어를 CPU로 보내거나 CPU가 연산한 결과를 Memory, I/O장치로 보낼 때 사용하는 양방향버스다. 주소 버스 주소 버스는 물리적 주소를 특정하기 위해 사용하는 버스다. CPU나 입출력장치(DMA-enabled device)가 메모리(혹은 기억장치)에서 데이터를 읽거나 쓸 때 주소 버스에 데이터 버스에 실어보내는 값의 메모리 주소를 전달한다. CPU가 ..

PIO(Programmed I/O)와 DMA(Direct Memory Access)

입출력 제어방식 컴퓨터와 입출력장치 사이에서 데이터가 오가는 방식을 입출력 제어방식이라고 하는데, DMA와 PIO는 이 입출력 제어방식들 중 하나이며 총 네 가지 방식이 있다. 대형 컴퓨터에서 사용하는 Channel에 의한 I/O를 제외한 세 가지 방식에 대해 알아본다. 제어방식 CPU 관여 여부 프로그램에 의한 I/O(PIO, Program I/O) O Intrrupt에 의한 I/O O DMA(Direct Memory Access)에 의한 I/O X Channel에 의한 I/O X Programmed I/O vs Interrupt I/O(Interrupt Initiated I/O) 이 두가지 입출력 방식은 CPU가 입출력(데이터의 이동)을 담당한다는 점에서는 같지만, 입출력이 준비되었음을 인식하는 과정..

컴퓨터 시스템의 기본

컴퓨터의 동작 방식 컴퓨터가 동작하는 방식은 아래의 세 단계를 반복하는 것과 같다. 입력 장치 혹은 네트워크 어댑터를 통해 컴퓨터에 처리 요청이 들어온다. 메모리에 있는 명령을 읽어 CPU에서 실행하고 그 결과를 다시 메모리의 다른 영역에 기록한다. 메모리의 데이터를 하드디스크(HDD)나 SSD 등의 저장 장치에 기록하거나 네트워크를 통해 다른 컴퓨터에 전송하거나, 혹은 디스플레이 등의 출력 장치를 통해 결과를 보여준다. 이러한 순서를 반복해서 하나의 처리(기능)으로 정리한 것을 프로그램이라고 하는데, 프로그램은 크게 애플리케이션, 미들웨어, OS(운영체제)로 구분할 수 있다. 프로그램의 종류 애플리케이션: 사용자가 직접 사용하는 프로그램. 오피스, 계산기, 브라우저 등 미들웨어: 여러 애플리케이션이 공..

메모리계층

메모리 장치의 계층 구조 [레지스터] - [캐시 메모리] - [메모리] - [저장장치] 크기 작음 크기 크다 가격 비쌈 가격 저렴 속도 빠름 속도 느림컴퓨터의 동작 흐름 명령어를 바탕으로 메모리에서 레지스터로 데이터를 읽는다. 레지스터에 있는 데이터를 바탕으로 계산을 수행한다. 계산 결과를 메모리에 쓴다. 컴퓨터는 레지스터에서 계산하는 시간보다 메모리에 접근하는 데 걸리는 시간, 레이턴시가 극도로 느리다. (2)단계가 아무리 빨라도 (1)과 (3)단계에서 병목이 발생하여 전체 처리속도는 메모리에 읽고 쓰는 레이턴시와 별 차이가 없게 되버린다. 캐시 메모리 캐시 메모리를 통해 레지스터 안에서 계산하는 것과 메모리에 접근하는 것 양 쪽 처리 시간의 차이를 메운다. [레지스터] - [캐시 메모리]의 레이턴시가..

메모리관리

리눅스는 커널의 메모리 관리 시스템으로 시스템에 탑재된 메모리를 관리한다. 각 프로세스는 물론이고 커널 자체도 메모리를 사용한다. 메모리 통계정보 메모리 통계정보는 free 명령어로 확인할 수 있다. (base) [user@server ~]$ free total used free shared buff/cache available Mem: 65387028 16650384 7639664 233184 41096980 48005532 Swap: 32767996 6065624 26702372 (base) [user@server ~]$ (base) [user@server ~]$ free -h total used free shared buff/cache available Mem: 62G 15G 7.3G 227M 39..