컴퓨터 구조 | Computer Architecture
컴퓨터 구조는 컴퓨터의 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨 및 컴퓨팅 방법에 대한 설계 등이 포함된다.
컴퓨터의 기능 구조에 대한 설계
컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에 필요한지 고민하고, 설계하는 분야이다.
대표적으로 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조가 있다.
폰 노이만 구조
연산과 제어를 위해 중앙처리장치(CPU)를, 저장을 위해 기억장치(Memory)를 사용한다.
그리고 장치간에 데이터나 제어 신호를 교환할 수 있도록 버스(bus)라는 전자 통로를 사용한다.
중앙처리장치 | CPU
CPU는 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌이다.
프로세스 코드를 불러오고, 실행하고, 결과를 저장하는 일련의 모든 과정이 CPU에서 일어난다.
CPU는 산술/논리 연산을 처리하는 산술논리장치(ALU)와 CPU를 제어하는 제어장치, CPU에 필요한 데이터를 저장하는 레지스터 등으로 구성된다.
기억장치 | Memory
기억장치는 컴퓨터가 동작하는데 필요한 여러 데이터를 저장하기 위해 사용되며, 용도에 다라 주기억장치와 보조기억 장치로 분류된다.
주기억 장치 : 프로그램 실행과정에서 필요한 데이터들을 임시로 저장하기 위해 사용 되며, 대표적으로 RAM이 있다.
보조기억 장치 : 운영체제, 프로그램 등과 같은 데이터를 장기간 보관하고자 할 때 사용된다. 대표적으로 HDD, SDD가 있다.
버스 | Bus
버스는 컴퓨터 부품과 부품 사이 또는 컴퓨터와 컴퓨터 사이에 신호를 전송하는 통로를 말한다.
대표적으로 데이터가 이동하는 데이터 버스, 주소를 지정하는 주소 버스, 읽기/쓰기를 제어하는 제어 버스가 있다.
이외에도 랜선이나 데이터 전송 소프트웨어, 프로토콜 등도 버스라고 불린다.
명령어 집합구조 | ISA
CPU의 명령어 대한 설계이다.
CPU가 처리해야하는 명령어를 설계하는 분야이다.
대표적으로 ARM, MIPS, AVR, 인텔의 x86 및 x86-64등이 있다.
x86-64 아키텍처
x64 아키텍처는 인텔의 64빝트 CPU아키텍처 이다.
이론상 16엑사 바이트(=16,777,216 테라바이트)의 가상 메모리를 제공할 수 있다.
이는 웬만해서는 완전한 사용이 불가능할 정도로 큰 크기이기 때문에, 가용한 메모리 자원이 부족해서 소프트웨어의 최고 성능을 낼 수 없다거나 실행이 불가능한 상황은 거의 발생하지 않는다.
마이크로 아키텍처
CPU의 하드웨어적 설계이다.
정의된 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계하는 분야이다.