3장 메모리와 디스크의 핵심: 순차 논리

young·2022년 7월 6일
0

📖 3장 keywords

  • 시간 표현과 상태 기억
  • 메모리 회로, 메모리 칩
  • RAM, ROM
  • 블록 장치
  • 플래시 메모리, SSD
  • 오류 감지와 정정

조합 논리는 입력에 따라서 출력이 결정된다.
-> 입력의 현재 상태만을 다룬다.

순차 논리는 입력의 현재와 과거 상태를 기억한다.


시간 표현과 상태 기억

컴퓨터는 주기적인 전기 신호가 필요하다.

컴퓨터 외에도 우리는 주기 함수를 통해 시간을 측정할 수 있고, 진자가 오가는 시간(=주기)을 주기 함수로 사용할 수 있다.

안정적인 주파수로 진동하는 발진자일수록 더 정확히 시간을 측정할 수 있다.
크리스탈을 이용한 발진자



crystal

전극(전선)을 크리스탈에 연결하고 크리스탈을 압축하면 크리스탈이 전기를 만들어낸다.
그리고 전극에 전기를 가하면 크리스탈은 구부러진다.
➞ 피에조 전기 효과 (=압전 효과)


<크리스탈의 스키매틱 기호>

크리스탈 발진자는 전자적인 단극쌍투 스위치를 사용해 크리스탈에 전기를 가해서 다시 전기를 얻어낸다.
입력한 전기로부터 크리스탈이 전기를 다시 만들어내는 시간은 예측이 가능하며 매우 정확하다.
특히 석영이 이러한 장점을 이끌어내기에 가장 적합한 크리스탈 고체 물질이다.



clock

발진자는 컴퓨터에 clock(시간을 셀 수 있게 해주는 신호)을 제공하고, clock은 회로의 페이스를 결정한다.
회로의 최대 클록 속도나 가장 빠른 템포는 전파 지연 시간에 의해 결정된다.
(전파 지연은 회로가 작업을 수행하는 속도에 영향을 미친다.)

  • 오버클로킹: 부품 제조 당시 설계와 다르게 강제로 클록을 빠르게 공급한다는 뜻


latch

OR 게이트의 출력을 입력에 묶는 방식의 feedback을 사용한 latch는 정보를 기억할 수 있다.
in이 1이면 out이 1이고, 이후에도 out은 1로 유지된다.

이 회로만으로는 out을 다시 0으로 만들 방법이 없기 때문에 feedback을 끊고 재설정 하는 추가 작업이 필요하다.

out을 0으로 만드는 래치

  • AND-OR 게이트 래치
  • S-R 래치 (액티브 로우 입력을 받고 보수 출력을 제공한다.)

보수 출력: 출력의 한쪽은 액티브 하이, 다른 쪽은 액티브 로우인 것

액티브 로우 = 반전 = 하드웨어 기호 위에 선을 그어서 표기: 값이 0일때 참이고 1일 때 거짓이라는 뜻



플립플롭

: edge에 의해 데이터 변화가 촉발되는 latch
(= edge-triggered latch)

edge : 데이터 변경으로 인해 잘못된 결과가 생길 수 있는 가능성을 최소화 하기 위해
논리 수준이 특정 값에 머무는 동안 데이터를 잡아내지 않고,
논리 수준이 한 수준에서 다른 수준으로 전이되는 중간에 데이터를 잡아내는 것

플립플롭을 응용한 회로 중 1, 2, 3 순서대로 수를 세는 카운터를 통해 시간을 셀 수 있다.
카운터를 가지고 더 큰 회로를 만드는 기본 기능 요소로 사용할 수 있다.

레지스터는 여러 D 플립플롭을 한 패키지에 넣은 것이다.

플립플롭은 비트를 하나 기억할 때 유용하고, 레지스터를 사용하면 쉽게 여러 비트를 저장할 수 있다.




메모리 조직과 주소 지정

비트 이상의 훨씬 더 많은 정보를 저장해야 한다면 레지스터를 많이 쌓아두는 것부터 시작할 수 있다.
입력에 따라 어떤 레지스터를 사용해야 하는지 어떻게 지정하는가?

  1. 레지스터에 번호를 부여한다.
  2. 지정한 주소에 해당하는 레지스터의 출력을 선택한다. ➞실렉터 필요
  3. 여러 메모리 컴포넌트의 출력을 하나의 출력으로 연결해야 하는 경우 ➞ 트라이스테이트 출력 필요


<메모리 회로(컴포넌트)>

32비트를 다루려면 입력과 출력을 32개씩 연결해야 하고 주소, 제어 신호, 전원 연결 또한 고려해야 한다.
➞ 다루는 정보가 많아질 수록 연결 지점이 매우 많아진다.


메모리를 읽는 동시에 사용해야 하는 일이 적다는 사실을 활용해 연결을 줄일 수 있다.
메모리 칩

메모리 칩에는 주소 버스데이터 버스가 있다.
➞ 메모리 크기가 늘어나면 주소로 연결해야 할 비트 수도 많아진다.

행과 열 주소를 멀티플렉싱 하면 주소 라인의 수를 반으로 줄일 수 있다.
주소가 두 부분으로 나뉘어 들어오기 때문에 한 번에 한 부분씩만 변경할 수 있다면 성능이 더 좋아질 수 있다.
➞ 임의 접근 메모리 => RAM



임의 접근 메모리

Random Access Memory = RAM

  • 정적 RAM =SRAM
  • 동적 RAM =DRAM

SRAM과 DRAM은 모두 휘발성 메모리로, 전원이 끊어지면 데이터가 사라진다.



읽기 전용 메모리

Read-Only Memory = ROM
= Write Once Memory
한 번 쓰고 나면 여러 번 읽을 수 있다.




블록 장치


디스크 드라이브

대용량 저장 장치 중 하나 (비휘발성)
디스크가 회전해야 하기 때문에 다른 메모리에 비해 상대적으로 느리다.
기록 밀도와 속도를 맞바꾼 기억 장치이다.

디스크는 바이트단위 대신 블록 단위를 사용해 주소를 읽는다.
(블록 = 섹터)

디스크 레이아웃을 살펴보면 비트 밀도는 디스크의 바깥쪽보다 안쪽이 더 높다.
바깥쪽 트랙에는 비트를 저장할 여유가 더 크기 때문에, 최신 디스크들은 방사상 영역으로 구분해 안쪽보다 바깥쪽에 더 많은 섹터가 들어가게 한다.

하드 드라이브: 하드 디스크 = 기존의 디스크 드라이브
플로피 디스크: 탈착이 가능한 디스크 드라이브, 잘 구부러지는 재질이어서 붙은 이름




플래시 메모리와 SSD

플래시 메모리: EEPROM의 한 종류
DRAM과 같은 방식으로 작동하지만 더 견고하여 전자가 새지 않는다.
RAM처럼 원하는 위치를 마음대로 읽을 수 있다.
읽을 때는 임의 접근 장치, 쓸 때는 블록 접근 장치이다.


SSD:고체 상태 드라이브 (Solid-state drive)
디스크 드라이브 패키지에 넣은 플래시 메모리와 같다.
플래시 메모리는 소모성이기 때문에 SSD에는 모든 블록이 비슷한 수준으로 소모되도록 조정하는 프로세서가 들어가 있다.




오류 감지와 정정

  • 패리티: 1비트 데이터가 잘못된 경우를 감지할 수 있다.
    1로 설정된 비트의 개수를 세고, 그 개수가 짝수인지 홀수인지 나타내는 1비트를 데이터에 덧붙이는 방식을 이용한다.
    ➞ 오류가 홀수 번 발생한 경우만 감지할 수 있다. 짝수 감지 불가

  • 해밍 코드라는 오류 감지 회로를 내장한 메모리 칩 = ECC 메모리 칩: 주로 큰 데이터 센터 등에서 쓰인다.

  • checksum

  • 순환 중복 검사



profile
즐겁게 공부하고 꾸준히 기록하는 나의 프론트엔드 공부일지

0개의 댓글