목록Computer Science (90)
ecsimsw

Cache 매번 느린 메인 메모리에서 instruction을 가져오는 것이 아닌 프로세서와 메인 메모리 사이에 위치하여 자주 사용하는 명령어를 더 빠르게 가져올 수 있도록 하는 기술이다. instruction을 fetch 할 때, 특히 같은 구간을 반복해서 fetch 할 때, memory안 어떤 주소의 데이터(명령어)가 바뀌지 않는다면 메모리에서 바로 명령어를 가져오는 것이 아닌 좀 더 작고 빠른 장치에서 해당 주소에 해당하는 데이터를 기억해 두었다가 꺼내쓸 수 있는 임시 공간을 만들어서 메모리 접근을 줄인다. 고속의 장치는 비싸다. 가격이 비싸거나, 용량이 적거나, 발열이 크다. 다른 조건(가격, 발열)을 동일하게 한다면 고속의 저장 장치는 더 작은 공간을 갖게 된다. 그 말은 즉 모든 메모리의 데이터..

Pipelining 기존의 파이프라인을 적용하지 않은 멀티사이클 방식은, 한 명령어를 처리하고 그 이후에나 다음 명령어를 처리시켜 ALU를 사용 시에는 메모리가 쉬고, 메모리를 사용 시에는 ALU가 쉬었다. 즉 명령어의 단계 외의 다른 컴포넌트가 IDLE 상태로 처리를 대기하는 식이었다. 파이프라이닝은 여러 명령어를 중첩하여 명령어 처리 단계를 병렬 실행시키는 기술이다. 한 사이클 안에서 여러 명령어를 동시에 처리하여 쉬는 컴포넌트 없이 작업하여 더 효율적인 처리를 가능토록 한다. 위 그림에서의 예시라면 위의 파이프라인을 적용하지 않은 프로세서는 3개의 LW 명령어를 처리하는데 2400ps의 시간을, 아래 파이프파인을 적용한 프로세서는 약 1400의 시간을 사용한다. 이때 3개의 명령어가 아닌, 명령어를..

Single-cycle based mips simulator싱글 사이클 기반의 mips simulator를 디자인한다. github : https://github.com/ecsimsw/simple-computer-architecture/tree/b.single_cycle ConceptsSingle-Cycle processor CPU는 내부 회로를 동작시키기 위해 일정한 주기로 규칙적인 전기 신호를 발생시키는데 이를 Clock이라고 한다. 즉 1 clock cycle은 한 번의 전기 신호를 말하고, 한 클럭에 걸리는 시간을 클럭 주기(Clock Period 또는 Clock cycle time)이라고 한다. 싱글 사이클 프로세서는 그 사이클 동안 하나의 명령어를 처리하는 프로세서를 의미한다. Control..

Backlog Backlog는 연결 대기할 수 있는 큐의 사이즈이다. 사용자와 연결이 완료되었지만 애플리케이션에서 처리하지 못하는 상황인 경우 (ex, 동기 처리 또는 사용 가능한 스레드 부족)에 연결을 큐에 담아두는데, 그 사이즈를 말한다. 보다 자세히 TCP의 3way Handshake를 보면 아래 그림과 같다. 서버는 클라이언트로부터 전달 받은 SYN을 syn_queue에 저장해두고, SYN+ACK 패킷을 클라이언트에 전달하게 된다. 이때 지정한 시간동안 클라이언트에서 ACK 패킷이 제대로 오지 않는다면, 이 syn_queue 안에 연결을 확인하여 클라이언트에 다시 지정된 시간 간격으로, 지정된 횟수 재시도하는 것이다. 그리고 이렇게 ACK 패킷을 전달받은 요청이 완료된 연결을 accept_queu..
기존 PR 방식에 지친다면?마틴파울러 블로그에 소개된 브랜치 전략을 소개하려고 한다. Rouan Wilsenach가 올해 9월 달에 작성한 따끈따끈한 글인데, 공감되기도 하면서도 필요한 팀들이 많을 것 같아 정리해본다. CI 정책이 확실하게 있고 팀원들이 어느 정도 경력이 있다면, 그리고 기존의 PR 방식이 늘어지고 의미 없다고 느껴본 적이 있는 사람이라면 한 번쯤 읽어보면 좋을 것 같다. Ship / Show / AskShip/Show/Ask is a branching strategy that helps teams wait less and ship more, without losing out on feedback.martinfowler.com 간단한 정리Rouan Wilsenach가 제안하는 이유와 ..

저는 현업을 경험해본 적 없는 학생입니다..내 브랜치 전략을 소개하기 앞서, 아직 현업에서 일해본 경험이 없는 아무것도 모르는 학부생이 쓴 글임을 미리 알리고 싶다. 현업과 괴리가 크거나 정확하지 못하고, 이상한 규칙도 많을 것 같아 조심스럽다. 그래서 'A는 B다'의 문장보다는, '~하는 것을 좋아한다.' , '~ 하는 편이다.'와 같은 내 생각이나 경험 위주의 정보가 9할일 것 같다. 이 글은 내 후배들을 위해서 쓰게 되었다. 2학년 후배들이 깃으로 협업을 해보고 싶은데, 공부 방향을 못 잡고 방법을 물어보는 경우가 많았고, 부족하지만 내가 깃으로 협업한 경험과 조심해야할 팁을 정리해주고 싶었다. 0. 기본적인 키워드는 구글링으로!대신 기본적인 키워드는 알고 오는 것이 숙제다. 자바로 치자면 '협업..

Slack으로 Github 알림 받기 / Github 앱 설정하기 팀 프로젝트를 진행하면서 깃헙의 알림을 메일이 아닌 자주 사용하는 메신저로 받을 수 있는 방법을 찾게 되었다. 특히 이슈를 올렸을 때 즉각 확인할 수 있도록 하고 싶었다. 슬랙의 Github 앱을 사용하면 지정한 레포지토리의 이벤트를 알림으로 받을 수 있다. 또는 슬랙 내에서 issue를 close하거나 새로운 이슈를 등록할 수 있다. 특히 레벨3에서 협업 미션을 진행하고 있는 다른 우테코 팀들에게 추천하고 싶어 글을 작성하게 되었다. Github App 설정하기 1. Slack Github App을 추가한다. 2. 알림을 받을 채널을 선택한다. 슬랙 앱 추가할 때 Select Channels 설정에서 알림 받을 채널을 설정할 수 있다. ..

IP 주소가 부족하진 않을까?2018년 말 기사를 보니, 010으로 시작하는 휴대폰 번호의 80% 이상이 이미 사용되어 고갈 시를 대비하고 있다고 한다. IP주소도 비슷하다. 엄청난 양의 노드가 생겼고, 앞으로는 더 많이 생길 것이다. 그렇게 되면 IP 주소가 부족하진 않을까? 서브넷팅IPv4 주소는 네트워크 주소와 호스트 주소로 영역이 분리되어 있다. 32비트 중 일부는 네트워크 영역, 일부는 호스트 영역인 것이다. 이를 서브넷팅이라고 한다. 한 네트워크에 속하는 호스트의 개수를 줄여 라우팅 정보를 줄이기 위함이다. 다음과 같은 상황을 생각해보자. 한 택배 회사가 배송지를 분담하려고 한다. 지금까지는 '시', '구' 단위로만 택배를 처리해야 했다. 지금까지는 그렇게 불만이 없었는데, 어느 날 어떤 구가..