반응형
✅ 1. 구조와 조직
- 컴퓨터 구조(Computer Architecture)와 조직(Computer Organization)은 서로 다른 개념이다.
- 컴퓨터 구조는 하드웨어의 구성과 상호작용하는 방식에 대한 설계 원칙을 다루며, 컴퓨터 시스템의 기본 구성 요소를 설명한다.
- 컴퓨터 조직은 컴퓨터 구조의 구성요소들이 상호작용하여 어떻게 구성되는지를 다루며, 구성 요소 간 상호 연결 구조를 설명한다.
- 컴퓨터 구조와 조직은 함께 컴퓨터 시스템의 기능과 성능을 결정한다.
💡 컴퓨터 구조 Computer Architecture
- 중앙처리장치(CPU): 연산 및 제어 수행
- 제어 유닛(Control Unit): 명령어 해석 및 제어 수행
- 산술 논리 연산장치(ALU): 산술 연산 및 논리 연산 수행
- 레지스터(Registers): CPU 내부 기억장치
- 주기억장치: 데이터 저장
- 캐시 메모리(Cache Memory): 주기억장치와 CPU 사이의 데이터 전송 속도 향상
- 입출력(I/O): 컴퓨터와 외부환경 간 데이터 이동
- 시스템 버스(System Bus): CPU, 메모리, I/O 간 데이터 전송 경로
💡 컴퓨터 조직 Computer Organization
- 명령어 집합 구조(ISA, Instruction Set Architecture): 컴퓨터에서 실행 가능한 명령어 집합 정의
- 데이터 표현 방식(Data Representation): 컴퓨터에서 데이터를 표현하는 방식
- 기억장치 구조(Memory Hierarchy): 컴퓨터의 기억장치 구성 및 조직
- 입출력 구조(I/O Architecture): 컴퓨터와 외부환경 간 데이터 이동을 위한 구성
- 버스 구조(Bus Architecture): 컴퓨터 내부에서 데이터 전송을 위한 경로 구성
💡 컴퓨터 계열 Computer familty
- 같은 구조를 가지는 모델들을 한 그룹으로 묶은 것이다.
- 모델의 조직(성능과 가격)은 다를 수 있지만, 구조는 같다.
- 기존 시스템에서 개발한 소프트웨어를 수정 없이 그대로 사용 가능하다.
- 조직은 기술의 변화에 따라 바뀔 수 있다.
✅ 2. 조직과 기능
💡 컴퓨터 조직
- 중앙처리장치(CPU): 명령어 해독, 데이터 처리
- 제어 유닛(Control Unit): 명령어 해독 및 실행 제어
- 산술 논리 연산장치(ALU): 산술 및 논리 연산 처리
- 레지스터(Registers): 중앙처리장치(CPU) 내부의 데이터 저장
- 버스(Bus): 컴퓨터 구성 요소 간 데이터 전송을 위한 통로
- 주기억장치(Main Memory): 프로그램 및 데이터 저장
- 보조기억장치(Auxiliary Memory): 주기억장치 외에 데이터 저장
- 입출력장치(I/O Device): 데이터 입력 및 출력
멀티코어 컴퓨터 조직 Multicore Computer Structure
멀티코어 컴퓨터 조직은 단일 코어 프로세서보다 더 빠르게 데이터를 처리할 수 있으며, 동시에 여러 개의 작업을 처리할 수 있는 성능을 가진다.
하지만 멀티코어 시스템에서는 코어 간의 경쟁이 발생할 수 있어 적절한 프로그래밍 기술이 필요하다.
- 멀티코어 프로세서(Core Processor): 하나의 칩 안에 여러 개의 코어를 포함하는 프로세서
- 코어(Core): 독립적인 처리 장치, 하나의 칩 안에 여러 개가 존재
- 코어 상호연결: 각 코어 간에 데이터를 주고받는 통신 경로
- 캐시 메모리(Cache Memory): 각 코어마다 존재하는 고속 메모리, 처리 속도 향상을 위해 사용
- 메인 메모리(Main Memory): 모든 코어가 공유하는 메모리
- 입출력 제어기(I/O Controller): 주변기기와 컴퓨터 간의 데이터 전송을 제어하는 장치
- 버스(Bus): 코어와 메모리, 입출력 제어기 간에 데이터를 전송하는 통신 경로
- 전원 공급장치(Power Supply Unit): 전기를 공급하여 컴퓨터를 동작시키는 장치
💡 컴퓨터 기능
- 데이터 처리(Data Processing): 정보를 입력받아 가공하고, 결과를 출력
- 데이터 저장(Storage): 데이터를 저장하고 필요할 때 다시 불러오기
- 데이터 입출력(I/O): 외부에서 데이터를 입력받아 처리하고, 결과를 출력하는 기능
- 프로그램 제어(Program Control): 입력된 명령어를 실행하고 프로그램 제어
✅ 3. 역사
💡 1세대 진공관
- 최초의 전자식 컴퓨터를 구성하는 데 사용
- 전기 신호가 전자를 통해 진공관 안에서 전달되며 동작
- 크기가 크고 발열이 많아 신뢰성이 떨어짐
- 1940년대 후반까지 주로 사용
💡 2세대 트랜지스터
- 1세대 진공관의 대안으로 등장
- 작고 발열이 적고 빠른 동작이 가능해짐
- 진공관에 비해 신뢰성이 높아짐
- 1950년대 후반부터 주로 사용
💡 3세대 직접회로
- 하나의 칩에 여러 개의 트랜지스터를 직접 구성하는 기술로 발전
- 칩 안에 수백만 개의 트랜지스터를 집적 가능하게 됨
- 빠른 동작, 소형화, 저전력 소모 등의 이점이 있어 대규모 집적 회로(LSI)로 발전
- 1960년대 후반부터 주로 사용
💡 4세대 VLSI
- 수억 개 이상의 트랜지스터를 하나의 칩 안에 집적 가능
- 하드웨어의 기능이 더욱 다양해지면서 실용적인 컴퓨터 제작 가능
- 1980년대 후반부터 주로 사용
💡 5세대 ULSI
- 수백만 개 이상의 트랜지스터를 하나의 칩 안에 집적 가능
- 대용량 메모리, 빠른 속도, 낮은 전력 소모 등의 이점이 있어 스마트폰, 태블릿 PC 등에 사용
- 1990년대 후반부터 주로 사용
✅ 4. 인텔 x86 구조의 발전 과정
컴퓨터의 중앙처리장치(CPU)에 대한 명령어 세트 아키텍처(ISA) 중 하나이다.
인텔의 대표적인 마이크로프로세서로 널리 사용되어 온 구조이다.
💡 8086/8088 (16비트 아키텍처)
- 1978년에 인텔에서 최초로 출시한 16비트 프로세서
- 16비트 데이터 버스, 20비트 주소 버스를 가짐
- 명령어 크기는 1~4바이트
- 실모드(Real mode)와 보호모드(Protected mode) 두 가지 운영 모드를 지원
💡 80286 (16비트 아키텍처)
- 1982년에 출시된 16비트 프로세서
- 24비트 주소 버스를 지원해 최대 16MB의 주소 공간을 사용 가능하게 함
- 가상 메모리(Virtual memory)를 지원하는 보호모드 사용 가능
- 코드 세그먼트와 데이터 세그먼트를 구분해 메모리 보호 가능
💡 80386 (32비트 아키텍처)
- 1985년에 출시된 32비트 프로세서
- 32비트 데이터 버스와 32비트 주소 버스를 지원해 최대 4GB의 주소 공간을 사용 가능하게 함
- 가상 메모리를 지원하는 보호모드 사용 가능
- 캐시 메모리 추가, 명령어 실행 속도 대폭 개선
💡 80486 (32비트 아키텍처)
- 1989년에 출시된 32비트 프로세서
- 32비트 데이터 버스와 32비트 주소 버스를 지원
- 캐시 메모리 업그레이드, 명령어 실행 속도 대폭 개선
- 플로팅 포인트 연산 레지스터 추가
💡 Pentium 시리즈 (32비트 아키텍처)
- 1993년에 출시된 32비트 프로세서
- 64비트 데이터 버스를 지원해 명령어 실행 속도 대폭 개선
- 슈퍼스칼라(Superscalar) 아키텍처 도입으로 명령어 실행 효율성 대폭 개선
- MMX(MultiMedia Extensions) 등 새로운 명령어 추가
💡 인텔 코어 프로세서 (2006)
- 멀티코어 프로세서 아키텍처
- 높은 처리 성능과 낮은 전력 소모로 유명
✅ 5. 임베디드 시스템 Embedded System
- 컴퓨터 시스템의 일종으로, 주로 제한된 환경에서 특정한 기능을 수행하기 위해 설계된 시스템이다.
- 일반적인 컴퓨터와 달리, 고정된 작업을 수행하며 사용자 인터페이스가 없거나 매우 제한적이다.
- 보통은 마이크로컨트롤러나 마이크로프로세서 등의 칩셋에 내장된 소프트웨어로 제어되며, 제한된 자원(메모리, 처리 속도, 전력 등)을 가지고 동작한다.
- 주로 특정한 목적을 위해 설계되어, 제한된 하드웨어 리소스와 소프트웨어를 활용하여 최적화된 성능을 제공한다.
- 자동차, 가전제품, 산업용 제어 시스템 등 다양한 분야에서 사용된다.
- 임베디드 시스템의 설계는 하드웨어와 소프트웨어 간의 통합적인 접근 방식이 필요하며, 성능, 안전성, 신뢰성, 보안 등의 측면에서 매우 중요하다.
💡 사물인터넷 IoT
- 인터넷에 연결된 다양한 사물(Things)이 서로 통신하고 상호작용할 수 있도록 구성된 컴퓨터 네트워크 기술이다.
- 센서, 액추에이터, 네트워크 기술, 데이터 처리 기술 등으로 구성된다.
- 센서는 주변 환경에서 데이터를 수집하고, 액추에이터는 데이터를 기반으로 작동하는 장치를 제어한다.
- 수집된 데이터는 네트워크를 통해 다양한 기기나 시스템과 공유되고, 분석 및 가공을 거쳐 유용한 정보로 활용된다.
- 스마트 홈, 스마트 시티, 스마트 팩토리, 자율주행차 등의 분야에서 활용되고 있다.
- 무선 통신 기술, 클라우드 컴퓨팅 기술, 인공지능 기술 등 다양한 기술의 발전과 함께 이루어지고 있다.
✅ 6. ARM, Advanced RISC Machines
저전력 마이크로프로세서 아키텍처이다.
현재 모바일 기기, 임베디드 시스템, IoT 디바이스, 무선통신 장비 등 다양한 분야에서 널리 사용되는 아키텍처이다.
- RISC (Reduced Instruction Set Computing): RISC 기반 아키텍처를 사용하여 처리 속도를 높이고 전력 소비를 줄이는데 중점을 둔다.
- ISA (Instruction Set Architecture): 명령어 세트로 이루어져 있으며, 소프트웨어가 프로세서와 상호작용할 수 있다.
- Thumb mode: 프로세서에서 실행되는 16비트 명령어를 사용하여 코드 크기를 줄이고 전력 소비를 줄인다.
- Cortex: 일련의 코어를 지칭하며 소비 전력, 처리 속도, 통합된 메모리 컨트롤러 및 다른 기능 등 다양한 측면에서 다르게 구성될 수 있다.
- NEON: 통합된 SIMD (Single Instruction, Multiple Data) 기능으로 빠른 데이터 처리를 가능하게 한다.
- Cache: 성능을 향상하기 위해 사용되는 메모리로 데이터를 미리 가져와 처리 속도를 높인다.
- Interrupt: 인터럽트는 외부에서 발생하는 이벤트로, 프로세서가 현재 실행 중인 작업을 중단하고 이벤트에 대한 처리를 수행한다.
- TrustZone: 보안 기능으로, 하드웨어 수준에서 안전한 컴퓨팅 환경을 제공한다.
- JTAG: 디버깅 및 테스트를 위한 인터페이스이다.
- Systick: 타이머 기능으로 정확한 시간 측정 및 인터럽트 처리 등에 사용된다.
✅ 7. 클라우드 컴퓨팅 Cloud Computing
- 가상화(Virtualization): 물리적 자원을 가상으로 나누어 서버, 스토리지, 네트워크 등을 논리적으로 구성함으로써 자원 활용도를 높이는 기술
- Elasticity: 클라우드는 필요한 만큼의 자원을 늘리거나 축소하여 탄력적으로 대처할 수 있는 기술
- Pay-Per-Use: 사용한 만큼만 과금되며, 경제적인 이점을 제공함
- IaaS, PaaS, SaaS: 클라우드 컴퓨팅의 서비스 모델로, 인프라, 플랫폼, 소프트웨어를 제공하는 서비스로 분류됨
클라우드 네트워크와 클라우드 저장장치는 클라우드 컴퓨팅의 핵심 기술이며, 비즈니스를 효율적으로 운영하기 위해서는 이들 기술을 잘 이용하는 것이 중요하다.
또한, 클라우드 서비스 제공자마다 차이가 있으므로, 실제 환경에서 사용할 때는 각 서비스의 특징을 파악하여 적절한 선택을 해야 한다.
💡 클라우드 네트워킹 Cloud Networking
- SDN(Software Defined Networking): 네트워크 구성을 소프트웨어로 제어하며 중앙 집중화된 관리가 가능한 네트워크
- VPC(Virtual Private Cloud): 클라우드 서비스에서 사용하는 논리적으로 격리된 가상 네트워크
- Load Balancing: 클라우드에서는 서버를 다수 운영하므로, 이를 분산 처리해 주는 로드밸런싱 기술이 중요하다.
- VPN(Virtual Private Network): 인터넷을 이용하여 원격 지역을 연결하는 기술로, 데이터를 암호화하여 안전하게 전송한다.
💡 클라우드 저장장치 Cloud Storage
- Object Storage: 클라우드 저장소에서 사용하는 데이터 형식으로, 메타데이터와 함께 저장되며, 대규모 데이터를 저장하는데 유용하다.
- S3(Simple Storage Service): 아마존 웹 서비스의 객체 스토리지 서비스로, 사용한 만큼 비용이 부과된다.
- EBS(Elastic Block Store): 아마존 웹 서비스의 블록 스토리지 서비스로, EC2 인스턴스에 연결하여 사용하는 저장소이다.
- Azure Blob Storage: 마이크로소프트 클라우드의 객체 스토리지 서비스이다.
- Google Cloud Storage: 구글 클라우드의 객체 스토리지 서비스로, 강력한 보안 및 액세스 제어 기능을 제공한다.