이론 정리/컴퓨터 구조

한 권으로 읽는 컴퓨터 구조와 프로그래밍 3장 정리

철매존 2024. 4. 2. 00:05
728x90

순차 논리란, 순서에서 비롯된 말이다.
즉 시간적으로 어떤 값 뒤에 오는 다른 값이라는 건데
그동안 배웠던 조합 논리는 입력의 현재 상태만을 다뤘다면 순차논리는 현재와 과거를 함께 고려한다.

시간 표현과 상태 기억

  • 주기함수를 사용해 시간 측정
    • 예를 들어 지구의 자전이 주기함수임.
  • 발진자
    • image
    • 요런 식으로 주기에 맞춰 피드백을 돌려주는거
    • 이게 정확하게 하려면 크리스탈을 활용하면 된다.
  • 클록
    • 발진자를 통한 시간 측정
    • 참고로 이걸 통해 컴퓨터가 시간을 측정하기 때문에 오버클로킹하면 클록을 빠르게 공급 가능
  • 래치
    • image
    • OR게이트 출력을 입력에 묶는 피드백을 통해 정보 기억 가능
      • 요렇게 하면 입력이 들어온 다음부터는 무조건 1이 될것이다.
      • 이를 해결하기 위해 회로 재설정 과정이 요렇게
      • image
        • 여기서 reset위에 줄그어진거는 반전이라는 것이다.
        • 동작을 간단하게 말하자면 set1이 1이면 계속 1이다가 reset이 1이 들어오면 -> 반전연산에 의해 0으로 바뀌는(그때 set은 0이어야 한다)것.
      • image
        • 요렇게 하면 대칭이라 set reset신호 지연 시간이 거의 비슷하다.
  • 게이트가 있는 래치
    • 게이트가 있는 S-R 래치
      • image
      • 이거 보면 gate의 반전이 거짓(1)이면 set, reset이 무엇이든 관계 없이 1로 출력이 유지된다.
    • 게이트가 있는 D래치
      • image
      • image
      • 여기서는 gate의 반전이 거짓이면 D가 변해도 Q출력에 아무 변화가 없다.
      • 근데 이거 문제는 gate의 반전이 참(0)인 상태에서는 D의 변화가 그대로 출력에 나타난다는 점
        • 게이트가 열려 있는 동안에는 스스로의 상태를 바꾸지 않아야 하는데, -> 즉 게이트 여는 시간을 최소화해서 순간적으로 D의 상태에 맞춰 출력 상태를 변경할 수 있다면 좋음
  • 플립플롭
    • 위에서 봤던 것처럼 데이터 변경으로 인해 잘못된 결과가 생길 수 있는 가능성을 최소화하는게 좋다.
    • 가장 많이 사용되는건 논리 수준이 특정 값에 머무는 동안 데이터를 잡아내지 않고 논리 수준이 한 수준에서 다른 수준으로 전이되는 중간에 데이터를 잡아내는것.
      • 이런걸 엣지(edge)라고 부른다.
        • 엣지를 시간에 대한 판정 기준이라고 생각할 수 있다.
    • 에지에 의해 데이터 변화가 촉발되는 래치를 플립플롭이라고 한다.
      • 뭔가 종류가 있는것같기는 한데, 그냥 얘의 역할은 어쨌든 이것이다.
      • 즉, 변화가 있을 때까지 데이터를 유지하다가, 변화가 생기면 이를 바로 캐치할 수 있는것

메모리 조직과 주소 지정

  • 비트 기억에 플립플롭 유용하고, 레지스터는 여러 비트 저장
    • 그러면 많은 정보는?
  • 주소를 부여한 레지스터를 쌓아서 하기
    • 여러개를 쌓아서 번호를 부여한다.
      • 주소 버스랑 데이터 버스를 통해 이를 찾아가기
        • 참고로 행과 열 주소를 멀티플렉싱하면 주소 라인의 수를 반으로 줄일 수 있다.
          • 여기서는 주소 저장을 위한 레지스터가 사용된다.

임의 접근 메모리

  • 지금까지 살펴본거를 RAM(Random Access Memory : 임의 접근 메모리)이라고 한다.
  • 정적램
    • 비싸지만 빠름.
    • 각 비트에 트랜지스터가 6개 들어간다.
    • 트랜지스터는 공간을 차지하기 때문에 SRAM은 수십억 ~ 수조 비트를 저장하기 좋은 선택은 아님
  • 동적램
    • 커패시터라는 작은 버킷에 전자를 담고, 트랜지스터 하나만 사용해 뚜껑 닫기
      • 근데 이 버킷은 자주 새기 때문에 가끔 메모리 갱신이 필요하다.
    • 이거는 집적도가 높아서 큰 메모리 칩에 사용된다.
  • 참고로 램은 모두 휘발성이다.

읽기 전용 메모리

  • ROM(Read Only Memory)
  • 참고로 읽기전용은 아니고, 한번밖에 못쓰는 메모리임.
  • 이거는 비휘발성

블록 장치

  • 디스크
    • 이거는 한번 지나간 데이터를 다시 읽으려면 다시 한바퀴 돌아야한다.

플래시 메모리와 SSD

  • 플래시 메모리는 최근 나타난 EEPROM유형 매체
    • DRAM과 마찬가지로 버킷에 전자를 담는데, 버킷이 크고 더 잘 만들어져 있어 전자가 새지 않는다.
    • RAM과 마찬가지로 원하는 위치를 마음대로 읽을 수 있다.
    • 근데 데이터 기록을 위해서는 먼저 0을 채워넣어야 한다. 0을 1로 바꿀수는 있지만 전체를 지우지 않고 원하는 비트만 0으로 되돌릴수는 없다.
    • 읽을 때 -> 임의 접근, 쓸 때 -> 블록 접근

오류 감지와 정정

  • 복사본 2개 더 만들기
    • 데이터를 비교해서 둘 이상 일치하는 쪽이 맞는다고 판단
    • 이거는 혹독한 환경일 경우
  • 패리티 비트
    • 1로 설정된 비트 숫자를 세는것
    • 이거는 그냥 1비트만 잘못된 경우만 감지 가능하다.
  • 해밍 코드
    • 더 많은 오류 탐지 가능 + 오류 부분이 적으면 바로 수정 가능