[Dreamhack - System Hacking] STAGE 2 : Computer Architecture

eunee22·2023년 7월 1일

Dreamhack/SystemHacking

목록 보기
1/12
post-thumbnail

컴퓨터의 다양한 부품들

  • 각자 고유의 기능을 수행한다.
  • CPU : 컴퓨터의 작동에 핵심이 되는 연산 처리
  • 저장장치 : 데이터 저장
  • GPU : 그래픽 데이터 처리
  • 랜카드 : 네트워크 통신 처리
  • 사운드 카드 : 소리 데이터 처리

컴퓨터 구조란?

  • 컴퓨터가 하나의 기계로서 작동이 가능하도록 다양한 부품을 모아서 조립하는 기본적인 설계
  • 컴퓨터의 효율적 작동을 위해 하드웨어, 소프트웨어를 구성하는 방법

명령어 집합구조(ISA) : CPU가 사용하는(해석하는) 명령어와 관련된 설계

  • 다양한 환경과 요구 연산 수준으로 인해 여러가지 ISA 존재
  1. x86-64, x86 (intel) = Intel64, IA-32e, EM64T, amd64

    • 고성능 → 많은 전력 소모, 심한 발열

    • WORD가 64비트인 CPU 아키텍처
      - WORD : CPU가 이해할 수 있는 데이터의 단위
      - WORD가 클수록 CPU 제공 메모리 크기 증가

    • x86-64의 레지스터
      1. 범용 레지스터(General Register) : 주 용도 외에도 다양하게 사용 가능한 레지스터
      - 각 범용 레지스터는 8바이트 저장 가능
      - 부호 없는 정수 기준 2^64 - 1까지 표현 가능
      - 자주 쓰이는 범용 레지스터
      - r → e : 하위 32bit
      - r → 없음 : 하위 16bit
      - 하위 8bit와 상위 8bit로 나누어 표현하는 H와(상위) L(하위)로 쪼개진다.

      2. 세그먼트 레지스터(Segment Register)
      - cs, ds, ss 레지스터 : 코드 영역과 데이터, 스택 메모리 영역을 가리킬 때 사용
      - es, fs, gs 레지스터 : 범용적
      - 과거 아키텍쳐의 WORD가 확장되기 이전에는 그 범위에선 접근이 불가한 주소에 접근하기 위해 사용 → 그러나, 지금은 사용 가능한 주소 영역이 넓기에 이러한 용도로는 거의 사용X
      3. 명령어 포인터 레지스터(Instruction Pointer Register, IP) : CPU가 어느 부분의 코드를 실행할지 가르킴
      - rip 레지스터 → 8byte
      4. 플래그 레지스터(Flag Register) : 프로세서의 현 상태를 저장
      - RFLAGS 레지스터 → 64bit
      - 구성하는 여러 비트들로 상태표시

  1. ARM
  2. MIPS
    • 2번, 3번 둘은 적은 전력 소모와 발열 → 임베디드 기기들에 적합

컴퓨터의 기능 구조에 대한 설계 : 컴퓨터 연산의 효율화를 위한 설계

  • 폰노이만 구조
    • 중앙처리장치(CPU) : 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌
      • 산술논리장치(ALU)
      • 제어장치(Control Unit)
      • 레지스터(Register)
        • CPU가 데이터를 빠르게 저장하고 사용 시 이용하는 보관소
        • 데이터의 빠른 교환과 병목현상 방지를 위해
        • 비슷한 역할을 하는 캐시
    • 기억장치(memory) : 컴퓨터 동작에 필요한 데이터 저장
      • 주기억장치 : 프로그램 실행과정에서 필요한 데이터 임시 저장
      • 보조기억장치 : 데이터 장기간 보관
        • EX) 운영체제, 프로그램
        • 하드드라이브
        • SSD
    • 버스(bus) : 신호 전송 통로(부품 ↔ 부품, 컴퓨터 ↔ 컴퓨터)
      • 데이터 버스
      • 주소 버스
      • 제어 버스 : 읽기/쓰기 제어
      • 랜선, 데이터 전송 소프트웨어. 프로토콜 포함
  • 하버드 구조
  • 수정된 하버드 구조

마이크로 아키텍처 : 정의된 명령어 집합의 효율적 처리를 위한 CPU회로 설계

  • CPU의 하드웨어적 설계
  • 캐시 설계
  • 파이프라이닝
  • 슈퍼 스칼라
  • 분기 예측
  • 비순차적 명령어 처리

기타 하드웨어 및 컴퓨팅 방법에 대한 설계

  • 직접 메모리 접근
profile
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글