본문 바로가기

기초공부

컴퓨터 구조와 명령어 집합 구조

컴퓨터 구조란?

컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안, 구성 하는 방법이다.

 

기능 구조의 대한 설계

  • 폰 노이만 구조
    컴퓨터는 연산, 제어 , 저장 세 가지 핵심 기능이 필요하다.
    장치간 데이터 혹은 제어 신호를 교환할 수 있도록 [버스]라는 전자 통로 사용

    중앙처리장치(CPU) - 연산 , 제어
    프로세스의 코드를 불러오고, 실행하고, 저장함
    연산을 처리하는 산술논리장지(ALU), CPU를 제어하는 제어장치, 데이터를 저장하는 레지스터로 구성
    ※ 레지스터가 필요한 이유 : CPU의 연산속도가 기억장치와의 데이터 교환속도보다 압도적으로 빠름
    따라서, CPU는 교환속도를 단축하기 위해 레지스터와 캐시라는 저장장치를 내부에 가지고 있음

    기억장치(Memory) - 저장
    여러 데이터를 저장하기 위해 사용됨
    주기억장치 - 데이터를 임시저장 (예 : RAM)
    보조기억장치 - 데이터를 장기간 저장 (예 : HDD, SSD)

    버스
    부품과 부품 , 컴퓨터와 컴퓨터 사이에 신호를 전송하는 통로
    데이터 버스 - 데이터가 이동
    주소 버스 - 주소를 지정
    제어 버스 - 읽기 및 쓰기 제어
    ※랜선이나 데이터 전송 소프트웨어, 프로토콜도 버스라고 불림

  • 하버드 구조
    명령용 버스와 데이터용 버스를 물리적으로 분할한 구조
    CPU가 명령어와 데이터에 동시에 접근이 가능하여 속도가 빠름
    (※폰 노이만은 동시 접근 불가로 한번에 하나씩만 처리가능)

  • 수정된 하버드 구조
    CPU의 외부적으로는 폰 노이만 구조를, 내부적으로는 하버드 구조를 적용
    참고 : https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0

CPU 명령어에 대한 설계

  • 인텔 x86, x86-64
  • ARM
  • MIPS
  • AVR

CPU 하드웨어적 설계

  • 캐시 설계
  • 파이프라이닝
  • 슈퍼 스칼라
  • 분기 예측

'기초공부' 카테고리의 다른 글

리눅스 프로세스의 메모리 구조  (0) 2022.11.16
HTTP/HTTPS  (0) 2022.11.10