목록Computer Science (89)
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..
기존 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비트 중 일부는 네트워크 영역, 일부는 호스트 영역인 것이다. 이를 서브넷팅이라고 한다. 한 네트워크에 속하는 호스트의 개수를 줄여 라우팅 정보를 줄이기 위함이다. 다음과 같은 상황을 생각해보자. 한 택배 회사가 배송지를 분담하려고 한다. 지금까지는 '시', '구' 단위로만 택배를 처리해야 했다. 지금까지는 그렇게 불만이 없었는데, 어느 날 어떤 구가..
웹 사이트에 접속하는 과정구글에 접속하는 방법은 쉽다. 주소창에 https://www.google.com 만 입력하면 된다. google.com 이 ip주소가 아니라는 건 안다. 우리가 봐온 ip주소는 192.168.151.112 같은 숫자 꼴이었으니 말이다. 이런 google.com, naver.com처럼 ip 주소를 문자로 표현할 수 있도록 하는 서비스를 DNS(Domain Name System)이라고 하고 그 문자열을 도메인이라고 한다. 이번 포스팅에서는 대충 DNS 서버로부터 ip주소를 얻어 서버에 페이지 리소스를 요청하고 응답받는다는 대답 말고, 조금 더 깊게 데이터를 요청하고 응답하기까지의 과정을 TCP/IP 모델의 역할과 함께 설명하고자 한다. 1. 목적지 ip 주소 확인도메인 주소가 입..