2023.04.29.SAT

ronglong·2023년 4월 29일
0

[ 혼공컴운 ]

Chapter 05. CPU 성능 향상 기법 (클럭 속도, 코어, 스레드, 명령어 병렬 처리)

  • 클럭 속도와 CPU 성능은 비례. 하지만 일정 수준 지나면 과열(한계).
  • 오버클럭킹 : 최대 클럭 속도를 강제로 끌어올리는 기법. 클럭 속도는 일정하지 않음.
  • 코어 : 명령어를 실행하는 부품. 갯수와 성능 어느정도 비례(분배가 더 중요)
  • CPU : 여러 코어를 가질 수 있음 -> 멀티코어 CPU(멀티코어 프로세서)
  • 스레드
    • 하드웨어적 스레드 : 하나의 코어가 동시에 처리하는 명령어 단위. 논리 프로세서
      -> 멀티스레드 CPU(멀티스레드 프로세서) : 하나의 코어에 여러 스레드
      -> 하이퍼스레딩 : 멀티스레드 기술. 레지스터가 핵심.
    • 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
      -> 1코어 1스레드 CPU가 여러 스레드로 만들어진 프로그램 실행 가능
  • 명령어 병렬 처리 기법
    • 명령어 파이프라이닝 : 각 단계 동시 처리
      • 파이프라인 위험
        • 데이터 위험(데이터 의존성)
        • 제어 위험(프로그램 카운터 분기. 분기 예측으로 보완)
        • 구조적 위험(자원 위험. 서로 다른 명령어가 동시에 같은 부품 사용)
    • 슈퍼스칼라 : 여러 개의 파이프라인. 슈퍼스칼라 CPU(슈퍼스칼라 프로세서)
    • 비순차적 명령어 처리(OoOE) : 파이프라인 멈춤 방지. 의존성 없는 명령어를 먼저 실행.
  • ISA
    • Instruction Set Architecture. 명령어 집합. 명령어 집합 구조
    • CPU가 이해할 수 있는 명령어 모음(CPU마다 다름. 다른 어셈블리어 발생)
    • CPU 언어
    • 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속
    • 종류
      • CISC(Complex Instruction Set Computer) : 가변 길이 명령어
        -> 다양한 명령어&주소 지정 방식 지원
        -> 컴파일하면 보다 적은 명령어 수로 번역됨
        -> 가변 길이 특성때문에 파이프라이닝 어려움
      • RISC(Reduced Instruction Set Computer) : 고정 길이 명령어
        -> 메모리 접근 단순화&최소화. 레지스터 적극활용
        -> load-store 구조
        -> 1클럭 내외로 명령어가 수행되어, 파이프라이닝에 적합

[ 자료구조 & 알고리즘 ] 스택, 큐, BFS, DFS 못 풀겠어서, 예전 코플릿 문제 다시 풀어보는데, 그때 못 풀었던 문제는 지금도 못 풀겠음..

4,5,11,12,13 모두 멸망... 어카누🤢🤮😵
레퍼런스 보고 겨우 이해해도 구현은 못 하겠다.

[ 느낀 점 ]

인생 첫 코딩테스트 봤다.
자료구조랑 알고리즘 공부 이제 막 시작해서 당연히 결과는 처참했으나(4문제 중 1문제 풀었음), 애초에 경험하려고 지원한 거라 타격은 없다.

복기하자면, 1번 문제는 행렬 문제. NXN 행렬을 2NX2N으로 늘려서 각각 가로, 세로, 가로&세로 뒤집기 해서 값 넣으면 되는 문제였다. 쉬워서 바로 풀었음.
나는 이중for문 하나 써서 풀었다.

2번 문제는 BFS 문제였던 것 같은데, 이벤트를 시행했을 때 가장 적은 비용으로 가장 많은 인원수 만들기 문제였다. 이벤트 갯수만 일정했더라면 조합을 사용해서 다중 for문으로 풀었을텐데, 이벤트 갯수가 유동적이라 무조건 알고리즘을 사용해야했다.
그래서 못 풀었음.

3번 문제는 각각의 기간 내에 각각의 업무들을 처리하기위한 최소 업무량을 구하는 것이었는데, 업무 기간이 겹치는 부분이 발생할 때 업무량 처리가 어려웠다.
코드 실행했을 때 테스트 코드는 전부 통과 되었으나, 실제로 제출할 때 테스트는 거의 다 실패뜸 ㅋㅋ
논리적 오류가 많은 코드였고, 나도 어느 부분이 문제인지는 알겠으나 해결은 하지 못했다.

4번 문제는 SQL 작성 문제였는데, 아직 SQL 공부 시작 안 해서 당연히 못 씀.
그래도 네 개 중에서 한 개 풀었다~~
계속 공부하면 조금씩 늘겠지,,

0개의 댓글