1. 개요
컴퓨터-구조는 컴퓨터 시스템을 구성하는 하드웨어와 소프트웨어가 결합하여 상호작용하는 방식과 그 조직을 정의하는 규칙의 집합이다.[1] 이는 개인용 컴퓨터나 워크스테이션과 같은 다양한 형태의 컴퓨팅 장치가 작동할 수 있도록 하는 근간이 된다.[3] 시스템 내부의 구성 요소들이 어떻게 연결되고 제어되는지에 대한 설계 원리를 다루며, 소프트웨어가 하드웨어 자원을 효율적으로 활용할 수 있는 인터페이스를 제공하는 역할을 수행한다.[7]
컴퓨터 설계의 핵심은 데이터의 표현 방식부터 시작하여 중앙처리장치의 조직적 구조를 결정하는 과정에 있다.[3] 구체적으로는 명령어의 형식과 종류를 분류하고, 어셈블러와 컴파일러가 언어를 처리하는 과정을 설계에 반영한다.[5] 또한 성능 향상을 위해 파이프라인 기법을 도입하거나, 메모리 계층구조를 최적화하기 위한 캐시 메모리 운용 방식을 결정하는 등 하드웨어의 물리적 한계를 극복하기 위한 다양한 설계 전략을 포함한다.[3][5]
이러한 구조적 이해는 현대 컴퓨팅 환경에서 매우 중요한 문제로 다루어진다. 데이터 경로와 제어 장치를 설계하는 방법은 시스템의 처리 속도와 효율성에 직접적인 영향을 미친다.[5] 또한 입출력 주변장치의 동작 원리를 파악함으로써 다양한 외부 기기와의 통신을 관리하며, 고성능 컴퓨팅 환경을 구축하기 위한 기술적 토대를 마련한다.[3][5] 이는 단순히 장치를 만드는 것을 넘어, 복잡한 소프트웨어 명령어를 물리적인 전기 신호로 변환하여 실행하는 일련의 메커니즘을 최적화하는 과정이다.
현대 기술의 발전은 더욱 정교하고 강력한 컴퓨터 시스템을 요구하며, 이에 따라 설계의 복잡성도 증가하고 있다.[7] 고성능 컴퓨터 시스템에 대한 연구는 성능 극대화를 위한 새로운 구조적 접근을 지속적으로 제시한다.[3] 결과적으로 컴퓨터 구조를 이해하는 것은 하드웨어의 물리적 특성과 소프트웨어의 논리적 실행 사이의 간극을 메우고, 변화하는 컴퓨팅 환경에 대응하기 위한 필수적인 과정이다.
2. 기본 구성 요소 및 동작 원리
워크스테이션, PC 등 다양한 컴퓨터 시스템에 대하여 기본적인 하드웨어와 소프트웨어의 구조와 동작 원리를 이해하고 설계하는 방법을 배우는 것을 목적으로 한다.[5] 데이터 표현 방법, 중앙처리장치(CPU)의 하드웨어 구조, 명령어의 형식과 종류, 어셈블러와 컴파일러의 처리 과정, Datapath와 Controller의 설계 방법, 성능 향상을 위한 파이프라인 기법, 메모리 계층구조와 캐쉬메모리, IO 주변장치의 동작 원리를 다루며, 고성능 컴퓨터에 대해서도 소개한다.[5] EE.20005 | EE.20005 | EE.20005 본 과목은 공학 응용을 위한 자료구조에 대한 학습을 한다.[5]
교과목 소개 본문 바로가기 ,
교과개요 | 전공기초 | 컴퓨터수학1, 파이썬프로그래밍및실습, 컴퓨터수학2, C프로그래밍및실습, 컴퓨터시스템기초설계 | | --- | --- | | 전공필수 | 자료구조, 컴퓨터구조, 알고리즘, 운영체제 | | 전공선택 | 선형대수, 객체지향프로그래밍, 논리회로설계및실험, 확률및통계, 형식언어및오토마타, 데이터분석및실습, 사용자인터페이스및실습, 컴퓨터네트워크, 프로그래밍언어, 파일처리, 문제해결, 시스템프로그래밍, 지능형시스템, 소프트웨어공학, 데이터베이스, 컴파일러, 임베디드시스템구조, 인공지능, 정보보안, 컴퓨터비전, 웹프로그래밍설계및실습, 전공종합설계1,2, 임베디드시스템소프트웨어, 데이터베이스응용, 컴퓨터그래픽스, 정보기술세미나1,2, 컴퓨터공학특강1,2, 모바일네트워크, 분산및병렬처리컴퓨팅, 컴퓨터학개론, 컴퓨터미적[1] Course Description Instruction formats and construction.[2] Memory hierarchy (cache, main memory and secondary memory) operation and performance.[2]
3. 명령어 체계 및 처리 과정
명령어 형식은 중앙처리장치가 수행할 작업의 종류와 필요한 데이터의 위치를 정의하는 구조이다. 각 명령어는 연산 코드인 Opcode와 피연산자인 Operand로 구성되며, 시스템 설계에 따라 다양한 형식을 가진다.[2] 이러한 형식은 하드웨어가 명령어를 해석하고 실행하는 데 필요한 정보를 제공하며, 명령어의 길이나 구조는 전체적인 Computer architecture의 효율성을 결정한다.
주소 지정 방식는 명령어가 참조할 데이터의 실제 위치를 결정하는 메커니즘이다. 이는 메모리 내의 특정 주소를 직접 지정하거나, 레지스터에 저장된 값을 활용하며, 혹은 메모리 계층구조 상의 다양한 지점을 가리키는 방식을 포함한다.[2] 주소 지정 방식은 프로그램이 데이터에 접근하는 유연성을 제공하며, 가상 메모리와 같은 고급 관리 체계와도 밀접하게 연관된다.
어셈블러와 컴파일러는 고수준의 논리적 설계를 하드웨어가 이해할 수 있는 기계어로 변환하는 핵심적인 처리 과정을 담당한다.[5] 어셈블러는 기호화된 명령어를 직접적인 기계어 코드로 변환하며, 컴파일러는 프로그래밍 언어를 분석하여 최적화된 명령어 집합으로 재구성한다. 이 과정은 데이터 표현 방법을 바탕으로 이루어지며, 소프트웨어의 의도를 하드웨어 자원에 맞게 구체화하는 단계이다.[5]
명령어의 실행 효율을 높이기 위해 파이프라인 기법과 같은 설계 방식이 적용된다. 이는 명령어를 여러 단계로 나누어 병렬적으로 처리함으로써 전체적인 성능을 향상시키는 기술이다.[2][5] 또한, 명령어 처리 과정은 I/O device와의 상호작용을 통해 이루어지며, 이 과정에서 인터럽트나 직접 메모리 접근 메커니즘이 활용되어 데이터 전송의 효율성을 극대화한다.[2]
4. 메모리 계층 구조
메모리 계층 구조는 컴퓨터 시스템의 성능을 최적화하기 위해 저장 매체의 특성에 따라 여러 단계로 나누어 관리하는 체계이다. 이 구조는 캐시 메모리, 주기억장치, 보조기억장치를 포함하며, 각 계층은 용량, 접근 속도, 비용 측면에서 서로 다른 특징을 가진다.[2] 상위 계층으로 갈수록 데이터에 접근하는 속도는 빨라지지만 저장 가능한 용량은 줄어들고 단위 용량당 가격은 상승한다. 반대로 하위 계층으로 내려갈수록 대용량의 데이터를 저렴한 비용으로 저장할 수 있으나 CPU가 요구하는 데이터에 도달하는 데 걸리는 시간은 길어진다.[3]
캐시 메모리는 프로세서와 주기억장치 사이의 속도 차이를 완화하기 위해 사용되는 고속의 저장 공간이다. 캐시는 참조 국소성 원리에 따라 자주 사용되는 데이터를 미리 복사해 두어 명령어 실행 및 데이터 처리 효율을 높이는 역할을 수행한다.[2] 만약 프로세서가 요청한 데이터가 캐시에 존재하면 이를 캐시 히트라고 하며, 존재하지 않을 경우에는 캐시 미스가 발생하여 주기억장치로부터 데이터를 가져와야 한다. 이러한 동작 방식은 전체적인 컴퓨터 시스템 성능을 결정하는 중요한 요소로 작용한다.
주기억장치는 프로세서가 직접 접근하여 명령어를 읽고 데이터를 처리할 수 있는 공간이며, 보조기억장치는 영구적인 데이터 저장을 목적으로 하는 대규모 저장 매체이다. 시스템은이두 영역을 효율적으로 관리하기 위해 가상 메모리 기술을 활용하기도 한다.[2] 또한 입출력 장치와의 데이터 전송 과정에서 효율성을 높이기 위해 인터럽트 메커니즘이나 직접 메모리 접근(DMA) 방식을 사용하여 CPU의 개입을 최소화하며 데이터를 이동시킨다.[2] 이러한 계층적 관리는 하드웨어 자원을 논리적으로 통합하여 사용자에게 일관된 컴퓨팅 환경을 제공하는 기반이 된다.
5. 성능 향상을 위한 설계 기법
컴퓨터-구조의 효율성을 높이기 위해서는 중앙처리장치 내부의 핵심 구성 요소를 정밀하게 설계해야 한다. 데이터패스와 컨트롤러를 설계하는 과정은 하드웨어가 명령어를 해석하고 실행하는 물리적 경로를 구축하는 작업이다.[5] 데이터패스는 연산에 필요한 데이터를 전달하고 처리하는 통로 역할을 수행하며, 컨트롤러는 각 단계에서 필요한 제어 신호를 생성하여 전체적인 동작을 관리한다. 이러한 설계 방식은 컴퓨터 시스템의 전반적인 성능 최적화와 직결된다.
파이프라인 기법은 명령어 실행 과정을 여러 단계로 나누어 병렬로 처리함으로써 시스템의 처리량을 높이는 핵심 기술이다.[2] 단순한 형태의 파이프라인 설계를 통해 하나의 명령어가 완료되기 전 다음 명령어를 시작할 수 있어, 전체적인 명령어 실행 속도를 개선한다. 이는 프로세서 설계의 효율성을 극대화하기 위한 필수적인 방법론으로 활용된다. 기본적인 성능 분석을 통해 이러한 기법이 실제 하드웨어 자원 소모와 처리 속도에 미치는 영향을 평가한다.
시스템 성능은 단순히 연산 속도뿐만 아니라 다양한 입출력 및 메모리 관리 메커니즘과도 밀접하게 연관되어 있다. 입출력 장치의 동작 원리를 최적화하기 위해 인터럽트나 직접 메모리 접근(DMA) 기술을 활용하여 데이터 전송 효율을 높인다.[2] 또한 가상 메모리와 캐시 메모리를 포함한 메모리 계층 구조의 운영 방식을 개선함으로써, 하드웨어와 소프트웨어가 상호작용하는 과정에서 발생하는 병목 현상을 완화하고 고성능 컴퓨터 환경을 구현한다.
6. 현대 컴퓨터 구조 연구 분야
현대 컴퓨터-구조 연구는 차세대 하드웨어와 소프트웨어 시스템, 그리고 이들 사이의 인터페이스를 설계하는 데 집중한다.[1] 특히 인공지능과 같은 신규 응용 분야에 최적화된 시스템을 구축하기 위해 컴퓨터 아키텍처의 조직 구조를 개선하고, 프로그래밍의 용이성과 전체적인 시스템 성능을 높이는 연구가 활발히 진행된다.[4] 이러한 연구는 하드웨어 설계뿐만 아니라 소프트웨어와의 유기적인 결합을 통해 효율성을 극대화하는 방향으로 나아가고 있다.
주요 기술적 연구 영역에는 RISC-V 기반의 아키텍처 설계와 임베디드 시스템, 그리고 시스템 온 칩 설계가 포함된다.[8] 또한 고성능 컴퓨팅 및 슈퍼컴퓨팅 기술을 통해 연산 능력을 확장하는 연구와, 분산된 환경에서 데이터를 처리하는 에지 컴퓨팅 기술이 핵심적인 주제로 다루어진다.[8] 이와 더불어 하드웨어 수준에서의 보안을 강화하기 위한 하드웨어 루트 오브 트러스트 구축 연구도 중요한 비중을 차지한다.[8]
시스템의 안정성과 보안성을 높이기 위한 시도로서 기능 기반 시스템 설계에 대한 연구도 이루어지고 있다.[8] 이는 현대 컴퓨팅 시스템에서 지속적으로 발생하는 메모리 안전성 취약점 문제를 해결하기 위한 방안 중 하나이다.[8] 이러한 연구들은 컴퓨터 시스템 기초 설계 및 시스템 프로그래밍과 같은 학문적 토대 위에서 수행되며, 복잡한 데이터 처리와 보안 요구 사항을 동시에 충족하는 것을 목표로 한다.[1]