-
컴퓨터 구조코드스테이츠 43기 2023. 3. 29. 22:31
CPU의 구조
산술/논리 연산장치 ->덧셈을 수행
제어장치 -> 시그널을 통해서 흐름 통제
레지스터 -> CPU 내부의 메모리
CPU의 기본적인 구조 산술/논리 연산장치
산술논리연산장치(ALU)는 산술적인 연산과 논리적인 연산을 담당하는 장치이다.
가산기,보수기,누산기, 기억레지스터,데이터 레지스터 등으로 구성된다.
캐시나 메모리로부터 읽어온 데이터는 레지스터라는 CPU전용의 기억장소에 저장된다.
ALU는 레지스터에 저장된 데이터를 이용하여 덧셈,곱셈과 같은 산술연상을 수행한다.
부동소숫연산장치(FPU)와 정수연산장치, 논리연산(AND,OR)장치 등이 있다.
레지스터
레지스터는 중앙처리장치 내부에 있는 기억장치이다. 두가지로 구분할 수 있는데, 다음과 같다.
-범용레지스터: 주로 산술 연산 논리장치에 의해 사용된다.
-전용레지스터: PC등 특수목적에 사용되는 레지스터
레지스터의 종류들
- IR:현재 수행중에 있는 명령어 부호를 저장하고 있는 레지스터
- PC: 명령이 저장된 메모리의 주소를 가리키는 레지스터
- AC: 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터
제어장치
제어장치는 CPU가 자신 및 주변기기들을 컨트롤 하는 장치이다.
프로그램 계수기 -> 프로그램의 수행순서를 제어한다.
명령 레지스터 -> 현재 수행중인 명령어의 내용을 임시 기억한다.
명령해독기 -> 명령 레지스터에 수록된 명령을 해독하여 수행될 장치에 제어신호를 보낸다.
CPU의 기능
CPU에서 명령어 수행 과정과 처리방식은 중요한 부분을 차지하고 있다. 명령어 인출 및 해독은 모든 명령어에 대하여 공통적으로 수행하며 기억장치에서 명령어를 읽어온다. 그리고 데이터 인출 및 처리,쓰기와 같은 것들은 명령어에 따라 필요할 때만 수행한다.
명령어
명령어:시스템이 동작을 수행시키는 작은 단위
- 동작코드: 각 명령어의 실행 동작을 구분하여 표현한다.
- 오퍼랜드: 명령어의 실행에 필요한 자료나 실제 자료의 저장위치를 의미한다.
명령어 수행 과정
- FI(읽기): 메모리에서 명령을 가져온다.
- DI(해석): 명령을 해석한다.
- EI(수행): 명령을 수행한다.
- WB(기록): 수행한 결과를 기록한다.
명령어 처리 방식
RISC -> 컴퓨터 내부적으로 사용하는 명령어세트를 단순화 시켜서 처리하는 형태의 구조, 단순한 명령을 조합해서 하나의 기능을 수행한다.
CISC -> 하나의 기능에 해당하는 하나의 명령이 있다.
CISC
- 여러 사이클로 명령어를 처리한다.
- 많은 명령어가 메모리를 참조하는 처리 방식이다.
- 파이프라이닝의 사용이 어렵다.
- 복잡한 마이크로 프로그램 구조를 갖고있다.
RISC
- 하나의 사이클로 명령어를 처리한다.
- 메모리 Load/Store 명령만 처리하는 방식이다.
- 파이프라이닝,슈퍼스칼라의 사용이 가능하다.
- 복잡한 컴파일러 구조를 갖고있다.
메모리
메모리 성능
메모리의 속도 : 메모리가 CPU와 데이터를 주고받는시간(액세스). 단위는 ns
- 리프레시 시간 : 메모리는 일정시간마다 재충전을 해줘야하는데, 그렇지 않으면 정보는 사라진다. 이 기간을 리프레시 기간이라고 한다. 이는 메모리에서 한번 읽고나서 다시 읽을 수 있는 사이 시간을 의미한다.
- 메모리 엑세스 시간 : 데이터를 읽어오라는 명령을 받고 데이터를 읽기 시작하기 까지의 시간. CPU에서 명령어를 처리할때 명령어가 갖는 주소를 보냄. 그러면 CPU에서 그 주소에 해당하는 값을 가져오게 되는데, 이때 걸리는 시간이 엑세스 시간이다.
- 사이클 시간(리프레시 시간+메모리 액세스 시간): 사이클 시간은 메모리 작업이 완료됨과 동시에 대기 신호를 내놓은 후 다음 신호를 받을 준비가 되었다는 신호를 주기까지의 시간을 말한다. 즉 메모리엑세스시간+리프레시 시간이다.
메모리 종류
주기억장치
RAM(Random Access Memory)
- 컴퓨터의 전원이 꺼지면 휘발된다. 램의 크기는 프로그램의 수행속도에 영향을 준다. CPU에서 직접 접근이 가능한 유일한 저장장치이다.
- 램의 종류에는 SRAM과 DRAM이 있다. SRAM은 리프레쉬가 필요없고 전력 소모가 적으나 비싸다. DRAM은 리프레시가 필요하고 S램보다 저가이며 많이 사용되는 편이다.
ROM(Read Only Memory)
- 대부분 읽을 수만 있는 장치로 구성되어 있으며 전원이 끊겨도 내용이 보존된다.
보조기억장치
자기디스크
- 원판 표면의 철입자 방향(N/S극)으로 0과 1을 표현한다. 디스크 드라이브는 자기 디스크로부터 데이터를 읽는 주변장치를 의미한다.
- 자기 디스크에는 플로피디스크(FDD)와 하드디스크(HDD)가 존재한다.
광 디스크
- 광디스크(optical idsc, CD)는 빛의 반사를 이용해 자료를 읽어낸다.
- 1세대:CD,2세대:DVD,3세데:블루레이디스크, 차세대:테라디스크 HVD등...
플래시메모리
- 전자적으로 데이터를 지우고 쓸 수 있는 휘발성 메모리로 충격에 강하여 휴대용 기기에 잘 쓰인다.
- USB와 SSD가 존재하며 SSD는 HDD와 달리 디스크,헤더와 같은 기계적 장치는 빠졌지만 저전력 저소음 저중량이라는 특징이 있다.
캐시메모리
CPU내외에 존재하는 메모리로, 메인메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 한다.
빠른 CPU의 처리속도와 상대적으로는 느린 메인메모리에서의 속도차이를 극복하는 완충역할을 한다. CPU는 빠르게 일을 진행하고 있는데 메인메모리가 데이터를 가져오고 가는게 느려서 캐시메모리가 중간에서 미리 CPU에 전달될 데이터를 들고 서있는 형태이다.
캐시메모리는 메인메모리의 일정 블록사이즈의 데이터를 담아두었다가 CPU에 워드 사이즈 만큼의 데이터를 전송하게 된다. 이 사이즈들이 캐시의 성능에 영향을 미치게 되는데, 블록사이즈나 워드 사이즈가 상대적으로 크다면 그만큼 cache의 hit ratio율이 높아진다.
CPU가 필요한 데이터가 Cache Memory 내에 들어와있으면 'Cache Hit'이라 하고 접근하고자 하는데이터가 없으면 'Cache Miss'라 한다.
이때 원하는 데이터가 Cache에 있을 확률을 'Hit Ratio'라 한다.
요소 내용 Cache 크기 Cache Memory의 Size가 크면 Hit Ratio와 반비례관계
(즉 너무 커도 안좋음!)인출방식(Fetch Algoritm) 요구인출(Demand Fetch): 필요시 요구하여 인출하는 방식
선인출(Pre-Fetch): 예상되는 데이터를 미리 인출하는 방식쓰기정책(Write Policy) Write-Through:주기억장치와 캐시에 동시에 쓰는 방식. Cache와 메모리 내용이 항상일치, 구성방법이 단순함.
Write-Back: 데이터 변경만 캐시에 기록. 구성방법이 복잡하다.교체(Replace)알고리즘 Cache Miss발생시 기존메모리와 교체하는 방식
FIFO,LRU(가장 오랫동안 참조되지 않은 페이지를 교체함),LFU(가장 적은 횟수를 참조하는 페이지를 교체함),Random,Optimal Belady's MIN(향후 가장 참조되지 않을 블록을 교체)사상(Mapping) 기법 주 기억장치의 블록을 적재할 캐시내의 위치를 지정하는 방법
1.직접매핑: 메모리주소와 캐시의 순서를 일치시킨다.
2.연관매핑(어소시에이티브 매핑): 순서를 일치시키지 않고, 필요한 메모리값을 캐시의 어디든 편하게 저장한다.
3.직접연관매핑(셋 어소시에이티브 매핑): 연관매핑에 직접매핑을 합쳐놓은 방식이다. 순서를 일치시키고 편하게 저장하되, 일정 그룹을 두어 그 그룹내에 편하게 저장한다.블록화가 되어있으므로 검색은 좀 더 효율적이고, 직접매핑처럼 저장위치에 큰 제약이 있는 것이 아니기때문에 적중률이 많이 떨어지지도 않는다.운영체제
운영체제의 목적 및 기능
운영체제의 목적: 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환시간 단축 등
- 프로세서,기억장치,입출력장치,파일 및 정보등 자원관리
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능 제공.
- 사용자와 시스템간의 편리한 인터페이스 제공
- 시스템의 각종 하드웨어와 네트워크 관리, 제어
운영체제의 시스템 자원관리
운영체제가 없다면 응용프로그램이 실행될 수 없다. CPU,RAM,디스크 등의 시스템 자원을 관리하는 주체가 운영체제이다.
'코드스테이츠 43기' 카테고리의 다른 글
[프로그래머스] 거리두기 확인하기 (0) 2023.05.03 CI/CD (0) 2023.04.03 React hooks 적용하기 (0) 2023.03.24 [2023.3.13] 섹션3 기술면접준비 (0) 2023.03.13 [TIL] 2023.3.9.(목) (0) 2023.03.09