본문 바로가기
Computer Science/컴퓨터구조

컴퓨터구조의 전반적인 소개 (2) 네트워크, 프로세서 & 디스크 발전, DRAM 용량 및 속도, 프로그램 컴파일 과정, 어셈블리 & 기계 언어 이해, 컴퓨터 명령 코드 실행 방법, 저장 프로그램 개념 설명

by 큌 2024. 4. 29.
반응형

1. 네트워크

  • 네트워크는 컴퓨터들이 서로 통신하고 자원을 공유할 수 있게 해주는 시스템.
  • 네트워크는 크게 세 가지 주요 유형으로 구분.
    • 지역 네트워크(LAN, Local Area Network):
      • 이 네트워크는 일반적으로 한 건물 내부나 가까운 거리에 위치한 컴퓨터들을 연결.
      • LAN은 주로 이더넷(Ethernet) 기술을 사용하여 컴퓨터들 사이의 통신을 가능하게 함.
      • 이더넷은 물리적인 케이블을 통해 데이터를 전송하는 기술.
      • 사무실이나 학교 같은 소규모 지역에서 공유 프린터, 파일, 인터넷 연결 등의 자원을 공유하는 데 이용.
    • 광역 네트워크(WAN, Wide Area Network):
      • WAN은 LAN보다 훨씬 넓은 지역을 커버.
      • 인터넷이 가장 대표적인 WAN의 예.
      • WAN은 도시, 국가, 심지어 대륙을 넘나드는 네트워크 연결을 가능하게 함.
      • 이를 통해 전 세계 어디서나 데이터와 정보를 주고받을 수 있다.
    • 무선 네트워크:
      • 무선 네트워크는 케이블이나 다른 물리적 연결 없이 통신을 가능하게 하는 기술.
      • 가장 일반적인 무선 네트워크 기술에는 와이파이(WiFi)와 블루투스(Bluetooth)가 있다.
      • 와이파이는 주로 인터넷 접속을 위해 사용되며, 블루투스는 주로 단거리에서의 파일 전송이나 헤드셋, 마우스, 키보드 등 주변기기의 연결에 사용.
  • 네트워크는 현대 생활에서 빼놓을 수 없는 중요한 요소로, 정보의 효율적인 교환과 자원의 공유를 가능하게 함.

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 칩이 고성능 컴퓨팅 요구 사항을 충족시키도록 설계되었음을 나타냄.

인텔 코어 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

 

반응형