이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

학부 수업/컴퓨터구조

  • 컴퓨터와 수학, 몽상 조금
10. 메모리 계층 (Memory Hierarchy)

10. 메모리 계층 (Memory Hierarchy)

2020.12.09
최근 수년간 메모리(DRAM)의 속도는 프로세서의 속도 증가에 비해 많이 증가하지 않았다. 이로인해, 프로세서와 메모리 사이의 속도 차이는 점차 커지고 있다. 이러한 문제를 해결하고자 컴퓨터 구조에서는 메모리의 계층을 분리하여 가장 빠른 메모리인 레지스터를 프로세서 데이터 패스 안에 넣고, 레지스터에 비해 느린 메모리에서 레지스터로 미리 데이터를 보내놓는 방식으로 속도 차이로 인한 문제를 완화시키고 있다. 레지스터와 시스템 메모리 사이에는 L1 캐시, L2 캐시 L3 캐시와 같은 메모리가 추가로 들어가서 이러한 역할을 수행한다. 레지스터 L1캐시 L2캐시 L3캐시 메모리 (DRAM) 속도 빠름 ↔ 느림 크기(용량) 작음 큼 비용 비쌈 쌈 메모리 계층의 관리 메모리 계층의 관리는 다음과 같은 주체에 의해 ..
9. 파이프라인 (Pipelining)

9. 파이프라인 (Pipelining)

2020.11.30
명령어의 수행은 Instruction Fetch부터 Write Back까지 크게 5단계에 걸쳐 수행된다. 파이프라이닝은 이러한 5단계를 동시에 수행하도록 하여 속도를 향상시키는 방법이다. 1 2 3 4 명령어 A Instruction Fetch Operand Fetch Execute Write Back 명령어 B Instruction Fetch Operand Fetch Execute 명령어 C Instruction Fetch Operand Fetch $n$개의 과정을 파이프라이닝 할 경우, 각 과정을 순차적으로 실행하는 거에 비해 $n$배에 수렴하는 속도 향상을 갖는다. MIPS의 파이프라인 MIPS에서는 명령어 실행을 아래 단계로 구분하여 파이프라인을 만든다. IF: Instruction Fetch f..
8. 데이터패스 (The Datapath)

8. 데이터패스 (The Datapath)

2020.11.24
CPU 성능의 척도는 ISA와 컴파일러에 의해 결정되는 Instruction Count와, CPU 하드웨어 성능인 CPI와 Cycle Time으로 구성된다. 데이터패스는 CPU에서 data와 address를 처리하는 요소들을 말한다. 명령어의 실행 명령어의 실행은 우선 프로그램 카운터(PC)에 실행할 명령어의 주소를 담는 것으로 시작된다. (Instruction Fetch) 그 다음, 레지스터에서 필요한 파일 등을 읽어오고, 이후 Instruction의 타입에 따라 ALU를 활용한 연산을 진행한다. 이후, 연산 결과를 저장하거나 읽는 과정을 거친 뒤, PC를 PC+4나 타겟 어드레스로 적절히 옮겨준다. 폰 노이만 구조와 하버드 구조 명령어의 실행과정에서 명령어를 담는 메모리(I-Mem)와 데이터를 담는 ..
7. 컴퓨터의 수 연산 (Arithmetic of Computer)

7. 컴퓨터의 수 연산 (Arithmetic of Computer)

2020.11.23
나눗셈 컴퓨터에서 정수의 나눗셈을 알아보자. 컴퓨터에서의 나눗셈은 곱셈에 비해 상대적으로 복잡하고, 많은 컴퓨팅 자원이 소요된다. 우리가 나눌 수를 dividend, 나누는 수를 divisor, 나누어진 수를 quotient, 나머지를 remainder라고 한다. 먼저 수를 0으로 나누는 것은 아닌가 확인하고 이 경우, 예외 처리를 한다. (0으로 나눌 수 없음) divisor $\leq$ dividend bit 일 경우, quotient에 1 비트를 넣고, dividend bit에서 divisor를 뺀다. 반대의 경우에는 quotient에 0 비트를 넣는다. (Long division Approach) 다음 비트로 넘어가서 2를 반복하여, quotient와 remainder를 구한다. 일반적인 나눗셈과..
6. 컴퓨터의 정수연산 (Integer Arithmetic of Computer)

6. 컴퓨터의 정수연산 (Integer Arithmetic of Computer)

2020.10.27
컴퓨터의 산술연산은 크게 정수Integer의 연산과 실수(부동소수점Floating Point)의 연산으로 나뉜다. 정수 연산 컴퓨터에서 정수는 이진수로 표현되는데, 이때 음수는 2의 보수로 표현된다. 2의 보수에 대한 자세한 설명은 아래 글을 참고하자. 2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System) 컴퓨터에서의 수 체계 컴퓨터에서는 크게 4가지 수 체계를 사용한다. 10진수 2진수 8진수 16진수 $a$진수는 $a$의 $n$승을 하나의 자리로 가지는데, 예를 들어 10진수 213은 아래와 같다. $213_{(10)} = 2 \t skyil.tistory.com 정수의 덧셈과 뺄셈 정수의 덧셈은 수 체계가 이진수일 뿐, 우리가 아는 덧셈과 똑같다. $1+1$이 되면 이진수..
5.5 프로그램의 실행 과정

5.5 프로그램의 실행 과정

2020.10.12
컴퓨터에서 프로그램의 실행과정은 다음과 같다. 헤더를 읽어 메모리 세그먼트의 크기 결정 메모리의 주소공간 확보 실행파일의 명령어와 데이터를 메모리에 복사 전달해야 할 인수들을 스택에 복사 레지스터 초기화 Startup Routine으로 Jump 인수들을 인수 레지스터에 넣고 main routine 호출 startup routine으로 복귀하면 exit system call을 호출하여 프로그램 종료
5. 메모리 접근 (Addressing)

5. 메모리 접근 (Addressing)

2020.10.12
메모리 접근Addressing 지금까지 배운 MIPS 명령어들의 경우 5 비트의 레지스터 주소를 사용하는 경우가 일반적이었다. 그런데, MIPS 명령어에서 받을 수 있는 크기 (I 명령어의 경우, 16 비트)이상의 메모리 주소나 상수값이 입력되면 어떻게 할까? 이런 문제를 해결하기 위해 MIPS는 다양한 할당 방법을 제공한다. 직접 접근Immediate Addressing I-구조 명령어는 16비트의 메모리 주소나 상수를 입력받는다. 이때, 입력할 상수값이 16비트보다 큰 경우, lui 명령어를 사용한다. lui $s0, 61 위 명령어는 $s0의 앞 16비트에 61의 값을 담는다. 뒤쪽 16비트는 0으로 채워둔다. 이제 ori 명령어를 사용한다. ori $s0, $s0, 2304 이제 $s0 뒤의 16..
4. MIPS의 명령어 구조와 명령어들

4. MIPS의 명령어 구조와 명령어들

2020.10.12
MIPS는 R, I, J의 세 가지 명령어 구조를 갖는다. R-구조 명령어 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op: operation code (opcode) rs: first source register number rt: second source register number rd: destination register number shamt: shift amount (00000 for default) funct: function code (extends opcode) add 명령어가 대표적인 R-구조 명령어이다. add rs rt rd shamt funct 32 17 18 8 0 0 for now 100000 1000..
3. MIPS 아키텍처

3. MIPS 아키텍처

2020.10.12
MIPS는 MIPS 테크놀로지에서 개발한 RISC ISAInstruction Set Architecture이다. PS2, 닌텐도 등 Embedded Core 장치에 주로 사용되다가 현재는 많이 밀려났으나, 현대 RISC ISA의 정석에 가까운 구조로 공부하기에 유용하다. MIPS의 설계원칙 간단하기 위해선 규칙성이 중요하다. 작은 것이 빠르다. 자주 생기는 일은 빨리 처리하라. MIPS의 레지스터 MIPS는 32비트 기준으로 32개의 레지스터를 가지며, 레지스터 번호는 0~31로 할당된다. 어셈블러는 임시 변수에는 t0, t1과 같은 이름을 부여하며, 저장되어 있는 변수에는 s0, s1과 같은 이름을 부여한다. 산술연산 MIPS의 산술연산은 3개의 피연산자로 구성된다. 이때, 산술연산의 operand는 ..
2. 명령어와 CPU 아키텍처 (Instructions and CPU Architectures)

2. 명령어와 CPU 아키텍처 (Instructions and CPU Architectures)

2020.10.12
명령어Instructions는 특정 마이크로프로세서가 인식하고, 기능을 수행할 수 있는 기계어 명령어의 집합을 말한다. 프로세서는 제조사, 목적 등에 따라 각기 다른 명령어 집합Instruction Set을 보유하고 있다. 우리가 사용하는 컴퓨터 프로그램은 각 프로세서에 대응하는 명령어의 집합(즉, 기계어)로 번역되어 실행되게 된다. 구식 컴퓨터뿐 아니라 현대의 컴퓨터들도 의외로 간결한 명령어 집합을 보유하고 있다. 명령어는 opcode와 operand로 구성되는데, opcode는 해당 명령어가 수행할 기능(store, load, add 등)을 나타내고, operand는 해당 명령을 수행하는데 필요한 데이터의 메모리 주소를 나타낸다. 명령어의 길이 메모리 반도체의 가격이 비쌌던 옛날에는, 코드 전체의 크..
1. 프로세서의 응답시간, 클럭, 수율 (Latency, Clock Frequency, Yield of Processor)

1. 프로세서의 응답시간, 클럭, 수율 (Latency, Clock Frequency, Yield of Processor)

2020.09.20
응답 시간과 처리량Latency and Throughput 컴퓨터의 성능을 나타내는 대표적인 지표로 응답 시간과 처리량이 있다. 응답 시간은 컴퓨터가 한 작업을 수행하는데 걸리는 시간을 의미하고, 처리량은 단위 시간당 컴퓨터가 수행하는 작업량을 의미한다. 성능의 정의 프로세서의 성능은 실행 시간에 반비례한다. 같은 프로그램을 실행하는데 프로세서 A는 10초, B는 15초가 걸렸다면, $\frac{\text{Execution Time}_B}{\text{Execution Time}_A}=\frac{15}{10}$ 이므로 A가 B보다 1.5배 빠르다고 할 수 있다. 응답 시간과 CPU 시간 작업을 끝내는데 필요한 전체 응답 시간, 즉 경과 시간을 Elapsed Time이라 하는데, 이는 처리Processing..
  • 최신
    • 1
  • 다음

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바