Computer Science/Computer Architecture

[computer architecture] -Computer Abstractions and Technology (2)

재한 2022. 9. 29. 20:21
이 글은 강의자료를 해석한 것으로 정확하지 않을 수 있습니다!!

 

📕SRAM VS DRAM

  • SRAM
    • [static random access memory]
      • cache memory를 구성함.
      • DRAM보다 빠르고, 덜 공간을 차지하면서 더 비싸다.
  • DRAM
    • [dynamic random access memory] 
      • memory를 구성함.
  • SRAM과 DRAM은 메모리 계층의 two layers이다.

 

📕Volatile memory

  • 전원이 꺼지면 instruction과 data를 잃어버림.
    • Main memory or primary memory
    • 보통 크기가 작고 빠르다.
    • e.g.)DRAM and SRAM

📕Nonvolatile memory

  • 전원이 꺼져도 프로그램과 데이터가 유지됨.
    • 보조기억장치
    • 크기가 크고 메인메모리보다 속도가 느리다.
    • e.g.) magnetic (hard) disk, flash memory, optical disk(CD, DVD)

🔎전체 컴퓨터와 네트워크 컴퓨터를 연결시켜주는 네트워크는 몇 가지 주요한 장점을 가진다.

  • Communication :  정보는 컴퓨터와 컴퓨터 사이에서 빠른 속도로 교환된다.
  • Resource sharing : 네트워크로 연결된 컴퓨터는 I/O 장치를 공유할 수 있다.
  • Nonlocal access : 유저는 사용하고자 하는 컴퓨터 근처에 있을 필요가 없다.

 

📗LAN

  • Local area network
  • 지리적으로 제한된 지역에서 데이터를 교환하도록 설계되었다.
  • 일반적으로 단일 건물 내에서는 Ethernet으로 쓰인다.

📗WAN

  • Wide area network
  • 넓은 지역의 네트워크(대륙을 횡단할 수도 있음)
  • ex) Internet

📗Wireless network

  • ex) Wi-Fi, Bluetooth

 

💡Processors와 memory는 측정 불가능한 속도로 향상되고 있습니다.

💡트랜지스터는 단순하게 전기로 컨트롤되는 on/off switch입니다.

  • IC(Integrated circuit)는 수십에서 수백 개의 트랜지스터를 하나의 칩으로 결합했다
  • VLSI(Very Large Scale Integrated circuit)는 수백에서 수백만 개의 트랜지스터를 포함한다.

 

📕Performance considerations for computer

  • 프로세서의 특성(e.g., clock frequency, # of cores)
  • 시스템 버스의 속도
  • Cache / Memory size
  • Disk storage (SSD or HDD)
  • 그래픽 카드(GPU)
  • 전력 소비
  • 가격, 무게, form factor, etc

💡개인 컴퓨터 사용자는 response time을 줄이는데 관심이 있다.

  • 시작부터 일의 완료 사이까지의 시간.
  • 우리는 response time을 execution time이라고도 부른다.

💡Datacenter manager는 산출량을 증가시키는데 관심이 있다.

  • 주어진 시간 안에 처리할 수 있는 일의 양

💡어떻게 하면 response time과 throughput에게 영향을 줄 수 있을까요?!

  • 더 빠른 프로세스로 대체시키면 응답 시간과 산출량이 증가합니다.
  • 프로세서를 추가해준다면 산출량만 늘어날 것입니다.

 

🔎컴퓨터 x의 성능은 아래와 같은 식으로 정의합니다.

아래는 두 컴퓨터의 성능을 비교하는 식입니다.

 

 

📕Time의 정의

컴퓨터 성능의 측정
프로그램 실행 타임은 각 프로그램당 초 단위로 측정된다.

💡Time의 가장 간단한 정의는 wall clcok time , response time, or elapsed time으로 불립니다.

이 용어들은  작업을 완료하는데 걸린 전체적인 시간, 디스크/메모리 accesses ,  input/output(I/O) activities, 
운영체제의 모든 것을 의미한다.

💡Cpu execution time(Or CPU Time)은 CPU가 task를 처리하는데 걸린 time을 의미합니다.

CPU executinon time은 I/O or other programs등에 의해 소비되는 time을 포함하지 않는다.
CPU time은 user Cpu time과 system Cpu time으로 나뉜다. 

 

📕CPU Clokcing

 

모든 컴퓨터들은 clock을 사용해서 만들어진다.

 

그럼 여기서 clock을 무엇일까?

 

💡clock

clock은 하드웨어에서 이벤트가 발생하는 시기를 결정합니다.

📗time intervals들은 clock cycles(or ticks, clock ticks, clock periods, clocks, cycles)라고 불린다.

위 그림은 clock cycle이 3 cycle이다.

 

💡Designers은 clock period의 길이와  complete clock cycle의 time과 clock rate를 참조해야 한다.

  • Clock period : duration of a clock cycle
  • Clock rate( or clock frequency) : cycles per second
CPU execution time = CPU clock cycles * Clock cycle time
                                 = CPU clock cycles / Clock rate

 

🔎하드웨어 디자이너들이 성능을 향상하는 방법

  • clock cycle의 수를 줄이는 것
  • clock cycle의 길이를 줄이는 것.

💡execution time은 instructions의 개수에 영향을 받는다.

 

Clock cycles = Instruction count * Cycles per instruction(CPI)
CPU execution time = instruction count  * CPI * Clock cycle time
                                 = instruction count * CPI / Clock rate 

 

💡Instruction count  for program는 프로그램과 ISA, 컴파일러에 의해 결정된다.

 

💡CPI(Clock cycle per instruction)는 각 명령이 프로그램에 대해 실행하는 데 걸리는 평균 클럭 사이클 수입니다.

  • CPU Hardware에 의해 결정된다.
  • 다른 명령은 다른 clock cycle를 가진다. -> CPI는 평균
CPU Time = Seconds/Program = Instructions/Program * Clock  cycles / Instruction * Seconds / Clock cycle

🔎프로그램의 성능과 의존 관계

 

 

📕Amdahl's Law

  • 컴퓨터의 한 측면을 개선하고 있으며 전반적인 성능에서 비례적인 개선을 기대하고 있다.
  • 더 이상 성능의 향상이 되지 않는 한계가 존재한다는 의미이다.

  • 컴퓨터에서 프로그램이 100초 만에 실행되며 이 시간 중 80초 동안 다중 작업이 수행된다고 가정합니다.
  • 어떻게 하면 성능을 5배로 향상할 수 있을 까요

20 seconds = 80 seconds/n + (100 -80) seconds

                  = 80 seconds/n + 20 seconds

0=80 seconds/n

 

-->  절대 5배 상향시킬 수는 없다.