본문 바로가기

Recent Study/컴퓨터구조4

Pipeline 파이프라인(Pipelining) 설계 기법파이프라인 설계는 CPU의 성능을 향상시키기 위해 각 명령어의 실행을 여러 단계로 분할하여 동시에 여러 명령어를 처리하는 방법입니다. 이를 통해 CPU는 각 사이클에 한 명령어가 아닌 여러 명령어의 일부를 실행할 수 있습니다.1. Non-Pipeline Design파이프라인을 적용하지 않은 설계 방식에는 싱글 사이클 구현과 멀티 사이클 구현이 있습니다.싱글 사이클 구현 (Single Cycle Implementation)- 설명: 모든 명령어가 한 사이클에서 실행됩니다. 각 명령어가 완료될 때까지 하나의 클럭 사이클을 사용하기 때문에, 복잡한 명령어도 동일한 사이클 내에서 처리해야 합니다.- 특징: - 구현이 단순하여 이해하기 쉽지만, 복잡한 명령어가 있는 경우.. 2024. 11. 5.
Computer Arithmetic Computer Arithmetic컴퓨터 산술은 컴퓨터가 숫자와 논리 연산을 수행하는 방법을 다루며, 이를 이해하기 위해 여러 논리 게이트, 보수 시스템, 부동 소수점 표기법 등이 필요합니다.NAND 게이트NAND 게이트는 구성의 단순성, 부품의 폭넓은 가용성, 비용 효율성 등 여러 장점이 있어, 모든 기본 논리 기능을 수행할 수 있습니다. 이는 NAND 게이트만으로도 AND, OR, NOT, XOR 등 모든 논리 연산을 구현할 수 있다는 것을 의미합니다.2의 보수 (Two's Complement)2의 보수는 컴퓨터에서 음수 표현에 널리 사용되는 방식으로, 다음과 같은 장점을 가집니다.0의 표현이 하나뿐이다.  2의 보수 표현에서는 +0과 -0이 존재하지 않으며, 0은 하나의 상태로만 표현됩니다. 이는 .. 2024. 11. 5.
Linking Object File과 Linker의 역할Object File (객체 파일)컴파일러가 소스 코드를 변환한 결과물로, 크게 세 가지 유형으로 나눌 수 있습니다.1. Relocatable Object File다른 파일에 정의된 함수나 전역 변수를 참조할 수 있는 객체 파일입니다. 파일 내부에 정의되지 않은 심볼은 ?와 같은 표시로 나타나며, 나중에 Linker가 연결을 통해 참조를 해결해줍니다. 2. Executable Object File실행 가능한 완전한 파일로, 모든 심볼이 연결되어 메모리에 로드 후 실행할 준비가 된 상태입니다. 3. Shared Object File여러 프로그램에서 공유 가능한 라이브러리 파일입니다. 프로그램 실행 시 동적으로 로딩되어 메모리 사용을 효율화할 수 있습니다. Linke.. 2024. 10. 25.
Instruction Set Architecture 컴파일러와 인터프리터 그리고 컴파일 과정컴파일러컴파일러는 고급 언어로 작성된 프로그램을 해당 머신이 알아들을 수 있도록 번역해주는 도구입니다. 컴파일 과정을 통해 실행 파일이 생성되며, 이 파일은 독립적으로 실행할 수 있습니다.컴파일 과정c, java, python(source program) → Compiler → 실행 머신의 언어(Target Program)컴파일러의 동작 과정은 다음과 같은 단계로 이루어집니다:Preprocessor : #include와 같은 전처리 지시자에 따라 소스 코드의 주소를 적절히 변경하여 실행할 코드를 가져오는 단계입니다.Compilation : 전처리된 코드를 어셈블리 언어로 변환합니다.Assembler : 어셈블리 언어 코드를 머신 코드로 바꿉니다.Linker : 변환.. 2024. 10. 25.