반응형
1. 네트워크
- 네트워크는 컴퓨터들이 서로 통신하고 자원을 공유할 수 있게 해주는 시스템.
- 네트워크는 크게 세 가지 주요 유형으로 구분.
- 지역 네트워크(LAN, Local Area Network):
- 이 네트워크는 일반적으로 한 건물 내부나 가까운 거리에 위치한 컴퓨터들을 연결.
- LAN은 주로 이더넷(Ethernet) 기술을 사용하여 컴퓨터들 사이의 통신을 가능하게 함.
- 이더넷은 물리적인 케이블을 통해 데이터를 전송하는 기술.
- 사무실이나 학교 같은 소규모 지역에서 공유 프린터, 파일, 인터넷 연결 등의 자원을 공유하는 데 이용.
- 광역 네트워크(WAN, Wide Area Network):
- WAN은 LAN보다 훨씬 넓은 지역을 커버.
- 인터넷이 가장 대표적인 WAN의 예.
- WAN은 도시, 국가, 심지어 대륙을 넘나드는 네트워크 연결을 가능하게 함.
- 이를 통해 전 세계 어디서나 데이터와 정보를 주고받을 수 있다.
- 무선 네트워크:
- 무선 네트워크는 케이블이나 다른 물리적 연결 없이 통신을 가능하게 하는 기술.
- 가장 일반적인 무선 네트워크 기술에는 와이파이(WiFi)와 블루투스(Bluetooth)가 있다.
- 와이파이는 주로 인터넷 접속을 위해 사용되며, 블루투스는 주로 단거리에서의 파일 전송이나 헤드셋, 마우스, 키보드 등 주변기기의 연결에 사용.
- 지역 네트워크(LAN, Local Area Network):
- 네트워크는 현대 생활에서 빼놓을 수 없는 중요한 요소로, 정보의 효율적인 교환과 자원의 공유를 가능하게 함.
2. Processor and Disk
- 기술 트렌드에서 프로세서와 디스크는 계속해서 발전하는 중요한 부분.
- 각각의 발전 속도는 다음과 같다:
- 프로세서:
- 논리 용량:
- 프로세서의 논리 용량은 연간 약 30%씩 증가하고 있다.
- 이는 프로세서가 수행할 수 있는 연산의 양이나 처리할 수 있는 데이터의 양이 매년 크게 증가하고 있음을 의미.
- 클록 속도:
- 프로세서의 클록 속도는 연간 약 20%씩 증가하고 있다.
- 클록 속도의 증가는 프로세서가 단위 시간당 더 많은 연산을 수행할 수 있게 되었음을 의미하며, 이는 전반적인 컴퓨터의 성능 향상에 기여.
- 논리 용량:
- 디스크:
- 용량:
- 디스크의 저장 용량은 연간 약 60%씩 증가하고 있다.
- 이는 매년 저장 장치에 더 많은 데이터를 저장할 수 있게 되었음을 의미하며, 사용자들이 더 많은 정보를 보관하고 접근할 수 있게 해줌.
- 용량:
- 프로세서:
3. DRAM
- DRAM(동적 랜덤 액세스 메모리)은 컴퓨터의 주요 메모리 유형 중 하나로, 기술 발전 추세는 다음과 같다:
- 용량:
- DRAM의 용량은 매년 대략 60% 증가.
- 이는 3년마다 용량이 4배로 증가한다는 것을 의미.
- 이러한 빠른 성장 덕분에, 사용자는 더 많은 데이터를 저장하고 빠르게 접근할 수 있게 되었다.
- 속도:
- DRAM의 속도는 매년 약 10% 증가.
- 이것은 메모리가 데이터에 접근하고 처리할 수 있는 속도가 매년 향상되고 있음을 의미.
- 빠른 메모리 속도는 컴퓨터의 전반적인 성능을 향상시키는 데 중요한 역할.
4. 반도체 기술
- 반도체 기술은 주로 실리콘을 기반으로 함.
- 실리콘은 그 자체로는 반도체 물질이며, 그 특성은 다음과 같이 변형될 수 있다:
- 도체(Conductors):
- 특정 물질을 실리콘에 첨가함으로써, 전기를 잘 통하게 만들 수 있다.
- 이를 통해 실리콘은 전기적 신호를 잘 전달하는 도체로 변환될 수 있다.
- 절연체(Insulators):
- 반면, 다른 물질을 첨가하여 실리콘의 전기적 특성을 절연체로 변형시킬 수도 있다.
- 절연체는 전기를 통하지 않게 만들어, 전기적 신호의 흐름을 차단.
- 스위치(Switch):
- 실리콘을 이용하여 전기적 신호의 흐름을 제어하는 스위치를 만들 수 있다.
- 이는 전기 신호를 켜고 끄는 역할을 하여, 전자 장치의 작동 방식을 제어하는 데 핵심적인 역할.
- 실리콘과 다양한 물질의 결합을 통해, 반도체 기술은 전자 장치의 기본 구성 요소인 도체, 절연체, 스위치 등을 만들어냄.
5. 인텔 코어 i7 웨이퍼
- 인텔 코어 i7 웨이퍼는 300mm 크기의 웨이퍼에 280개의 칩이 포함되어 있으며, 이 칩들은 32nm 기술을 사용하여 제작됨.
- 각 칩의 크기는 20.7mm x 10.5mm.
- 이 정보는 반도체 제조 과정에서의 효율성과 기술의 정밀함을 보여줌.
- 300mm 웨이퍼는 반도체 산업에서 표준적인 크기 중 하나로, 이 크기의 웨이퍼에서 수백 개의 칩을 생산할 수 있다.
- 32nm 기술은 칩 제조에 사용되는 미세공정 기술의 하나로, 이는 전자 회로의 크기를 더욱 줄여 더 많은 기능을 칩에 집적할 수 있게 해줌.
- 각 칩의 크기가 20.7mm x 10.5mm인 것은 높은 수준의 집적도와 고성능을 가능하게 하는 요소.
- 이러한 기술적 세부 사항은 인텔 코어 i7 칩이 고성능 컴퓨팅 요구 사항을 충족시키도록 설계되었음을 나타냄.
6. 프로그램 컴파일
- 프로그램 컴파일은 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 언어로 변환하는 과정.
- 사용되는 고급 언어에는 C, C++, Java, C# 등이 있다.
- 이러한 언어들은 반복문, 함수, 조건문 등의 계층적이고 구조화된 제어와 스칼라, 배열, 포인터, 구조체 등의 계층적이고 구조화된 데이터를 지원.
- 컴파일러는 고급 언어로 작성된 프로그램을 어셈블리 언어로 번역.
- 이 과정에는 파싱과 단순한 번역이 포함되며, 컴파일러는 또한 프로그램의 실행 효율을 높이기 위해 최적화 작업을 수행.
- 컴파일러 자체도 프로그램인데, 컴파일러는 누가 컴파일했을까?.
- 이는 '부트스트래핑' 과정을 통해 해결.
- 초기 단순 컴파일러는 보통 다른 언어로 작성되어 있거나 매우 기본적인 수준에서 수동으로 기계어로 변환.
- 이 컴파일러는 더 복잡한 컴파일러를 만드는 데 사용될 수 있으며, 이 과정이 반복되면서 점차 고급 기능을 갖춘 컴파일러가 생성.
- 이는 자기 자신을 컴파일할 수 있는 단계에 이르게 된다.
7. Assembly & Machine Language
- 어셈블리 언어:
- 이는 사람이 읽을 수 있는 표현 방식으로, 기계 언어보다 이해하기 쉽게 설계된 저급 프로그래밍 언어.
- 어셈블리 언어는 컴퓨터의 하드웨어와 직접적으로 상호작용할 수 있게 해주며, 명령어들은 사람이 읽을 수 있는 기호나 단어(예: ADD, SUB, MOV 등)로 표현.
- 기계 언어:
- 이는 컴퓨터가 직접 이해할 수 있는 형태로, 1과 0의 이진 코드로 구성.
- 기계 언어는 컴퓨터의 가장 기본적인 언어
- 모든 고급 프로그래밍 언어 또는 어셈블리 언어로 작성된 프로그램은 결국 기계 언어로 변환되어야 컴퓨터에서 실행될 수 있다.
- 기계 언어는 종종 16진수("hex")로 표시되기도 함.
- 어셈블러:
- 어셈블리 언어로 작성된 프로그램을 기계 언어로 변환하는 역할.
- 이 과정을 통해 사람이 이해할 수 있는 코드가 컴퓨터가 이해할 수 있는 이진 코드로 변환
- 이렇게 변환된 코드는 컴퓨터에 의해 직접 실행될 수 있다.
- 간단히 말해, 어셈블리 언어는 사람이 이해할 수 있도록 설계된 저급 언어이며, 기계 언어는 컴퓨터가 이해하고 실행할 수 있는 가장 기본적인 언어.
- 어셈블러는 이 두 언어 사이의 다리 역할을 하여 프로그래머가 작성한 코드가 컴퓨터에서 실행될 수 있도록 함.
8. Instructions Codes
- 프로그램은 일련의 기계 명령어(또는 인스트럭션)로 구성.
- 기계 명령어란 컴퓨터가 특정 작업을 수행하도록 지시하는 비트(bit)의 집합.
- 이러한 작업은 미세 작업(micro-operation)의 순서로 이루어짐.
- 프로그램의 명령어와 필요한 데이터는 메모리에 저장.
- 컨트롤 유닛 내의 제어 회로(control circuitry)는 메모리에 저장된 명령어를 읽고 이를 미세 작업의 순서로 변환.
- 이 과정을 통해 컴퓨터는 주어진 명령어를 실행하여 다양한 작업을 수행할 수 있다.
- 예를 들어, 더하기, 빼기, 데이터 전송과 같은 기본적인 연산부터 더 복잡한 알고리즘 수행까지 다양한 작업을 실행할 수 있다.
- 간단히 말해, 프로그램은 컴퓨터에 수행할 작업의 명령어를 제공하며, 이 명령어들은 컴퓨터가 이해할 수 있는 기계어로 구성되어 있다.
- 제어 회로는 이러한 명령어를 읽고, 컴퓨터가 수행해야 할 구체적인 미세 작업의 순서로 변환하여 실행.
9. 기본적인 명령 코드의 예시
- Load (로드):
- 메모리에 저장된 데이터를 레지스터로 불러오는 명령.
- 이 명령을 사용하여 프로그램은 메모리에서 특정 데이터를 레지스터로 전송할 수 있다.
- Store (스토어):
- 레지스터에 있는 데이터를 메모리로 저장하는 명령.
- 이 명령은 레지스터의 데이터를 메모리의 지정된 위치에 저장하는 데 사용.
- Add (덧셈):
- 두 개의 레지스터에 저장된 숫자를 더하는 명령.
- 이 연산을 통해 두 수의 합이 계산되고 결과는 보통 또 다른 레지스터에 저장.
- Increment (증가):
- 레지스터에 저장된 숫자를 1 증가시키는 명령.
- 이 명령은 수치를 증가시키는데 주로 사용.
- Clear (클리어):
- 레지스터의 값을 0으로 설정하는 명령.
- 이 명령을 사용하여 레지스터를 초기화할 수 있다.
- 이러한 명령 코드들은 컴퓨터가 수행할 수 있는 기본적인 연산들을 나타냄.
- 프로그램은 이러한 명령들을 조합하여 더 복잡한 연산과 작업을 수행할 수 있다.
10. 컴퓨터가 지시사항을 실행하는 방법
- 명령어 저장:
- 프로그램에 포함된 명령어들이 메모리에 저장.
- 이러한 명령어들은 컴퓨터가 수행해야 할 작업들을 나타내는 코드로 구성.
- 명령어 불러오기:
- 컴퓨터의 제어 유닛(Control Unit)은 메모리에서 명령어를 순차적으로 불러옴.
- 이 과정에서 프로그램 카운터(Program Counter)가 다음에 실행할 명령어의 위치를 가리킴.
- 명령어 디코드:
- 제어 유닛은 불러온 명령어를 해석(디코드)하여 어떤 작업을 수행해야 할지 결정.
- 이때 명령어의 종류에 따라 필요한 연산이 결정.
- 실행:
- 디코드된 명령어에 따라 컴퓨터는 산술 논리 연산 장치(ALU), 레지스터, 메모리 등의 하드웨어 자원을 사용하여 명령어를 실행.
- 예를 들어, 데이터를 레지스터에 로드하거나, 레지스터의 값을 더하거나, 메모리에 데이터를 저장하는 작업 등이 이에 해당.
- 결과 저장:
- 명령어 실행의 결과는 보통 레지스터나 메모리에 저장.
- 이를 통해 나중에 다른 연산에서 이 결과를 사용할 수 있다.
- 다음 명령어로 이동:
- 모든 작업이 완료되면, 프로그램 카운터는 다음 명령어의 위치로 업데이트되고, 이 과정이 프로그램이 종료될 때까지 반복.
- 이러한 과정을 통해 컴퓨터는 메모리에 저장된 명령어들을 순차적으로 실행하며, 다양한 작업을 수행할 수 있다.
11. Stored Program Concept
반응형
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
Digital Systems and Logic (2) 디지털 회로 설계: 조합 논리 간소화, 순차 논리 및 레지스터 (0) | 2024.04.29 |
---|---|
Digital Systems and Logic (1) 논리 게이트, 조합 및 순차 논리, ALU, 그리고 불 대수 (0) | 2024.04.29 |
컴퓨터구조의 전반적인 소개 (4) 컴퓨터 아키텍처 최신 동향: GPGPU, TPU, 멀티코어 프로세싱, 전력 관리 기술 (0) | 2024.04.29 |
컴퓨터구조의 전반적인 소개 (3) 컴퓨터 성능 향상 기법: CPU 시간, 클럭 속도, CPI, 명령어 수 최적화 (0) | 2024.04.29 |
컴퓨터구조의 전반적인 소개 (1) 무어의 법칙, 컴퓨터 종류 및 구조, 프로그래밍 코드 계층 이해하기 (0) | 2024.04.29 |