카테고리 없음

[혼공컴운] 3주차

이서찬 2025. 1. 26. 22:01

지난 이야기

지난 이야기!

코어는 명령어를 해석하고 실행하는 부품이다. 
CPU는 코어 여러개가 들어있는 부품이다. 반드시 연산속도가 코어의 수에 비례하여 증가하진 않는다.
스레드란 '실행 흐름의 단위'이다. 소프트웨어적 스레드와 하드웨어적 스레드로 나뉜다. 하나의 코어가 하나의 명령어를 처리하면 1코어 1스레드로 볼 수 있을 것이다. 코어가 2개인데 한번에 실행가능한 명령어 흐름은 각각 2개라면 2코어 4스레드라고 부른다. 소프트웨어 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위이다. 워드 프로세서 프로그램에서 맞춤법 검사와 화면 출력이 하나의 프로그램에서 동시에 실행되어가는 것이 그 예이다. 소프트웨어적 스레드의 구현은 코어 개수나 하드웨어적 스레드와는 무관하다. 하드웨어적 스레드의 구현은 레지스터의 중복이 핵심이다.

명령어 파이프라인: 명령어 인출 해석 실행 저장
근데 레지스터에서 인출하는 것과 해석하는 것과 실행하는 것, 저장하는 그 통로와 레지스터 지점이 다르기에 CPU는 여러 개의 명령어를 서로 다른 단계 준위에서 실행가능하다. 단계가 겹치지지만 않으면 여러 명령어 흐름을 동시 시행 가능하다는 것이다.
데이터 위험: 명령어간에 의존성이 있어서 동시 처리가 불가능한 경우. 명령어 흐름2에서 변수 a를 요하는데 명령어 흐름1에서 변수 a값을 아직 정해주지 못한 경우
제어 위험: 흐름이 갑자기 멀리로 떨어지게 되는 경우
구조 위험: 같은 지점을 동시에 사용하게 되는 경우
하드웨어 스레드는 여러 가지 명령어 흐름을 실행할 수 있게하는 것이라 하였다. 이 하드웨어 스레드가 사용되는 것이 슈퍼스칼라이다. 파이프라인 위험도 때문에 단순히 파이프라인을 늘린다고 실행 속도가 비례하여 빨라지진 않는다.

명령어 집합구조: CPU의 언어인셈
CPU가 달라짐면 그에 따라 명령어 집합 구조가 바뀐다. 명령어 집합구조는 하드웨어가 소프트웨어 사이의 약속이라고 할 수 있다.
CISC: 복잡한 명령어 처리 - x86, x86-64등에서 사용된다고 한다. 다양하고 강력한 명령어로 구성되어 있기에 상대적으로 짧은 명령어 길이를 갖는다. 다만 명령어 하나하나가 복잡하고 실행 시간이 일정하지 않아서 파이프라인이 불리하다는 치명적 단점을 갖게 된다. 반면 RISK는 짧고 규격화된 명령어를 사용하여 파이프라인에 상대적으로 유리하다.

 

 

 

06-1 램의 특성과 종류

램은 실행할 대상을 올려놓는 '책상'과 같은 존재이다. 전원이 꺼지면 내용을 잃어버리기에 휘발성 저장 장치에 해당한다.

DRAM: 소비전력이 낮고 저렴하고 집적도가 높아 용량을 높게 할 수 있다.

SRAM: 전원이 연결되어 있는 동안에는 주기적 재활성화 필요없이 보존된다. 소비전력이 높고 집적도가 낮아서 용량이 낮아도 되지만 속도가 빠르면 좋은 캐시 메모리에 많이 사용된다.

SDRAM: DRAM의 발전된 형태다. 앞의 S는 신크로나이즈드의 S이다. 쿨럭신호와 동기화된 버전의 DRAM이다. 

DDR SDRAM: SDRAM의 발전된 형태다. 대역폭을 넓혀 속도를 빠르게 한 버전이다. 쿨럭신호에 맞춰 주고받을 그 데이터들의 양이 늘어난 버전이라고 할 수 있겠다.

 

06-2 메모리의 주소 공간

물리주소는 하드웨어상의 주소, 논리주소는 실행되고 있는 프로그램 각자의 주소

물리주소와 논리주소 간의 변환이 필요한데 이를 MMU가 담당한다. MMU는 베이스 레지스터와 논리주소의 값을 더하여 물리 주소를 구할 수 있다. 이때 논리주소 값이 프로그램 메모리 크기를 초과하면 문제가 생긴다. 이러한 문제를 방지하기 위하여 한계 레지스터가 설정된다.

 

06-3 캐시메모리

컴퓨터 저장 장치의 계층을 생각해볼 수 있다. 레지스터vs메모리vs외부저장장치

이들은 단순히 계층 상의 차이만 있는 것이 아니다. 속도가 빠르려면 용량이 작아야 되고 또한 가격도 비싸다.

메모리는 레지스터보다 속도가 느리기 때문에 CPU와의 중간 지점 역할을 할 캐시 메모리를 사용하기도 한다. 그 속도와 용량 등은 레지스터와 메모리 사이에 존재할 것이다. CPU 내부에 있기도 하고 외부에 있기도 하다. 내부에 있는 캐시 메모리의 경우에는 여러 코어들 사이에서 그 내용이 동기화되는 것이 중요하겠다.

 

07-1 다양한 보조기억장치

위의 그림은 하드디스크라고 한다. 트랙과 섹터가 저장 단위이다. 같은 트랙이 여러 층 묶이면 실린더라고 한다. 한 실린더 내의 정보는 굳이 디스크암, 헤드가 이동하지 않아도 연속적으로 읽을 수 있기에 실린더가 정보 저장 단위가 되는 것이다.접근 과정에서 소요되는 시간은 접근 탐색 시간 회전지연시간 전송시간.. 으로 이루어진다. 이 시간들은 물리적인 원인에 의한 것이기에 그 단위가 크다.

플래시메모리는 범용성이 넓다. NAND플래시 메모리가 많이 쓰인다. 플래시메모리에서의 저장 단위는 셀이다. 이 셀이 1비트를 저장할 수 있는지, 2비트를 저장할 수 있는지 등으로 분류가 가능하다. 더 적은 비트를 저장하는 셀일수록 비트의 빠른 입출력이 가능하고 수명이 긴 대신 고가격이다. 읽기쓰기 단위가 삭제 단위가 다르다. 단위가 다르기 때문에 inValid한 저장공간을 처리하기 위해서 가비지 컬렉션을 이용한다.

 

07-2 RAID

데이터의 안전성 성능을 위해 여러 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

RAID 1은 백업 복구용으로 완전한 복사본을 하나 더 저장하는 방식이다.

RAID 4는 패리티비트용 하드디스크를 가지는 방식이다. 배리티비트를 이용해 굳이 복사본을 갖지 않아도 오류의 검출과 복구가 가능해진다. 다만 병목현상이 생길 수 있다. 

속도나 안전성을 가지고 RAID를 선택하는 것이 중요하다.

 

08-1 장치컨트롤러와 장치 드라이브

장치컨트롤러는 입출력장치와 CPU 사이를 매개해주는 역할을 한다. 오류를 검출하고 번역가 역할을 수행하며 버퍼링 역할도 해준다. 버퍼링은 전송속도를 맞춰주는 역할을 한다. 

장치컨트롤러의 레지스터에는 데이터 레지스터, 상태 레지스터, 제어 레지스터가 있다. 데이터 레지스터는 버퍼 역할을, 상태 레지스터에는 준비, 완료 등의 상태가 저장된다. 

장치 드라이브는 장치 컨트롤러를 작동시키는 소프트웨어이다. 장치 드라이버가 설치되어 있지 않으면 해당 입출력기기를 사용할 수 없을 것이다. 

 

 

숙제!!

 

p.185 3 .설명에 맞는 보기를 고르시오

답:
(1): SRAM
(2): DRAM
(3): DRAM
(4): SRAM

p.205 1 .저장장치 계층 구조도를 채우시오

답: 레지스터, 캐시 메모리, 메모리, 보조기억장치