전공 134

[unipro 2.0] unrolling IDLE sequence란 무엇인가?

unipro 2.0 스펙을 공부하던 도중 unrolling IDLE sequence를 언급한 문단에서 의문이 떠올랐다. spec 어디에서도 unrolling이라는 단어를 사용하지 않았기 때문에 의미를 이해하지 못했다. 해당 spec을 제정한 MIPI alliance의 bugzilla라는 홈페이지에서 해당 문장이 포함되기까지의 논의 과정를 발견할 수 있었다. 1. 정상적인 IDLE sequence라면 mk3 부터 시작해서 로 종료될 것이다. 2. 하지만 IDLE sequence 전송 중 발생한 오류로 인해 의도하지 않은 symbol으로 바뀌어 전송될 수 있다. 2-1. 중간에 발생한 오류라면 IDLE sequence이 종료되지 않으며 (IDLE sequence에 대한 처리인 unrolling도 계속 수행)..

전공/unipro 2.0 2023.12.23

[컴퓨터시스템] 2의 제곱으로 나눗셈하기

이번 포스팅에서는 2의 제곱으로 정수를 나눌 때 컴퓨터에서의 결과값과 그 과정을 위해 쉬프트 연산이 사용될 수 있음을 알아보고자 합니다. 2의 제곱으로 정수를 나눌 때는 오른쪽 쉬프트 연산을 사용합니다. 비부호형 정수에는 논리 쉬프트, 부호형 정수에는 산술 쉬프트를 적용합니다. 우측 쉬프트 때 논리 쉬프트는 좌측에 0을 패딩으로 채워 넣고 산술 쉬프트는 MSB(most significant bit)를 패딩으로 반복하여 채워 넣습니다. 컴퓨터에서 정수를 정수로 나누어 정수 결과값을 계산할 때 그 값이 항상 0 방향으로 근사되도록 정의하였습니다. 예로 들어 1.24는 1(floor - 같거나 작은 최근접 정수), -1.24는 -1(ceiling - 같거나 큰 최근접 정수), 0과의 거리가 최소화되도록 근사되..

[알고리즘/문제풀이] 11657번 타임머신

https://www.acmicpc.net/problem/11657 11657번 타임머신 문제의 핵심은 벨만-포드 알고리즘입니다. 벨만-포드 알고리즘에 대한 설명은 다음의 게시물에 있습니다. 2022.01.02 - [알고리즘/이론] - [알고리즘/이론] 벨만-포드 알고리즘 [알고리즘/이론] 벨만-포드 알고리즘 벨만-포드 알고리즘 벨만-포드 알고리즘은 가중치를 가지는 방향그래프의 최단거리를 구하는 데 사용되는 알고리즘입니다. 특징으로 음의 가중치를 가지는 경우에도 사용할 수 있습니다. 또한 ark-hive.tistory.com 해당 문제는 벨만 포드 알고리즘을 그대로 적용하여 해결할 수 있습니다. 주의사항 실제 구현에서 정점까지의 경로가 존재하지 않을 때의 무한대 값을 실제 숫자로 치환하여 구현하기 때문에..

[알고리즘/이론] 벨만-포드 알고리즘

벨만-포드 알고리즘 벨만-포드 알고리즘은 가중치를 가지는 방향그래프의 최단거리를 구하는 데 사용되는 알고리즘입니다. 특징으로 음의 가중치를 가지는 경우에도 사용할 수 있습니다. 또한 출발점에서 도달가능한 음의 순환의 존재 여부를 확인할 수도 있습니다. 음의 순환이 존재하면 최단거리는 구할 수 없습니다. 모든 최단경로는 순환을 가지지 않으며 따라서 한 정점을 두 번 이상 방문하지 않습니다. 그래프에 정점이 V개 있다면 최단 경로는 최대 V-1개의 간선을 가질 수 있습니다. 최단거리 계산에는 출발점에서 도착점까지의 경로를 순서대로 완화함으로써 최단거리 값을 구할 수 있다는 정리가 이용됩니다. 그래프의 모든 간선을 V-1번 완화(노드의 추정최단거리 값을 갱신하는 행위)하면 한 출발점에서의 모든 다른 노드까지로..

전공/알고리즘 2022.01.02

[컴퓨터시스템] 컴퓨터시스템의 추상화

컴퓨터 시스템에서의 추상화는 각 요소들에게 독립성을 제공해줍니다. 프로세서는 인스트럭션 집합으로 추상화되어 상위 단계에서는 특정한 인스트럭션이 순차적으로 실행될 수 있다는 사실만 이해하면 됩니다. 이러한 추상화 덕분에 동일한 기계어 코드를 다른 프로세서에서도 실행할 수 있게 되었습니다. 소프트웨어 단에서도 운영체제는 입출력 장치를 단순히 파일로 추상화하고 메인 메모리와 디스크를 가상메모리로 추상화합니다. 또한 메인 메모리, 입출력 장치, 프로세서를 프로세스로 추상화합니다. 더 크게 운영체제와 프로세스는 가상 머신(VM)으로 추상화될 수 있습니다.

[컴퓨터시스템] 3가지 병렬성

프로세서 수준의 병렬성 단일 프로세서에서 시분할(Time Sharing) 기법을 사용하여 여러 개의 프로세서를 동시에 실행하는 것처럼, 혹은 여러 명의 사용자가 동시에 시스템을 사용하는 것처럼 느끼도록 할 수 있었습니다. 멀티 프로세서는 하나의 운영체제에 의해 관리되는 여러 개의 프로세서를 의미합니다. 멀티코어프로세서는 멀티 프로세서의 범주에 포함되며 코어(cpu)가 단일 집적회로에 여러 개 집적된 프로세서를 의미합니다. 프로세서 내부에서 코어를 제외한 나머지 하드웨어 자원을 공유합니다. 하나의 코어에서 여러 개의 쓰레드를 동시에 실행하는 하이퍼쓰레딩 기술이 적용될 수도 있습니다. 인스트럭션 수준의 병렬성 프로세서 내부에서 파이프라이닝 기법을 통해 수 클럭이 소요되는 인스트럭션을 동시에 처리할 수 있습니..

[컴퓨터시스템] 암달의 법칙

암달(Amdahl)의 법칙은 시스템의 성능을 향상시키기 위해서 성능에 큰 부분을 차지하는 요소를 개선해야 한다는 사실을 알려주는 법칙입니다. 또한 시스템의 특정 부분만을 과도하게 개선시키는 것이 전체 시스템 성능 향상에는 유의미하지 않다는 것을 시사하기도 합니다. 정량적으로 성능 향상 정도를 계산할 때는 개선 이후의 실행 시간 대비 개선 이전의 실행시간의 비율을 사용합니다. 예로 들어 개선 이전 시간이 개선 이후 시간의 2.2배라면 2.2X로 표시합니다.