20150421

1. 영어 기사 읽기
1) French lawmakers want Google to give up its secret search code, CNN
– That allowed Google to provide the Chinese with search results without the onus of censoring the results according to Chinese law (the onus – 책임, 2014/08/06)
2) Taste Salty with Less Salt, Scientific American
– One of the most sublime of salty snacks. (sublime – 절묘한 것, 숭고한 것)
– But have you ever wondered how they get that perfectly salty sheen on the outside? (sheen – 윤기, 광택)
– Lee’s investigating that salty-solid conundrum for a company that wants to make cold cuts that taste the same but contain less salt. (conundrum – 수수께끼)


2. Page coloring에 대한 이해
Page coloring은 가상 메모리 상의 연속된 페이지가 캐시에 골고루 퍼지도록 하는 기법이다. 위키피디아 설명을 그대로 옮겨보면 다음과 같다. Physically indexed 캐시는 연속된 물리 주소 블록이 서로 다른 위치에 들어가게 됨을 보장한다. 하지만 가상 메모리에 있어서 이 규칙은 더이상 통하지 않는다. 가상 주소 공간에서 인접한 두 블록은 캐시에서 잠재적으로 같은 위치에 들어갈 수 있다. Page coloring을 통해 이러한 문제를 해결할 수 있다. 가상 주소 공간에서 인접한 두 개의 페이지가 하나의 캐시 블록을 두고 경쟁하는 일을 막아준다. 물리적인 페이지는 색칠되어, 서로 다른 캐시 위치에 들어갈 수 있도록 해준다. 이 방식으로 연속된 페이지는 같은 캐시 라인을 두고 경쟁하지 않게 된다. (Cache Coloring, Wikipedia, https://en.wikipedia.org/wiki/Cache_coloring)

관련 논문
[ISCA’90] The TLB slice – a low-cost high-speed address translation mechanism
[EuroSys’09] Towards practical page coloring-based multicore cache management


3. Cache Partitioning, Optical NoC 관련 논문 읽기
[MICRO’06] Utility-Based Cache Partitioning: A Low-Overhead, High-Performance, Runtime Mechanism to Partition Shared Caches
이 논문에서는 공유된 캐시를 여러 개의 프로세스가 파티셔닝해 사용할 때 발생하는 문제를 확인한다. 일반적으로 캐시에서는 LRU replacement 정책을 사용하는데, 이것은 암묵적으로 cache demand가 많은 프로세스에게 더 많은 자원을 주는 것이다. 하지만, 캐시 자원을 더 많이 요구한다고 해서 캐시를 더 줬을 때 성능이 더 좋으리라고 생각할 수는 없다. 캐시 자원 요구 정도와 무관하게, 캐시를 더 줬을 때 얼마나 더 성능이 오르는지를 기준으로 캐시 자원을 할당하는 것이 옳다. 이 논문에서는 이 아이디어에 기반해 utility based cache partitioning (UCP) 기법을 제안한다.
아이디어를 그대로 utility based cache partitioning으로 구현한다. 두 개의 프로세스가 각 코어에서 실행되는 상황을 우선 가정한다. 캐시 파티셔닝 알고리즘은 각 어플리케이션에 대한 utility 정보를 받는다. 가용 캐시 크기에 따른 성능 향상에 대한 정보를 utility monitoring (UMON) circuit이 지속적으로 확인한다. 그리고 이를 사용해 캐시 파티셔닝을 한다.
Utility monitoring circuit은 LRU 정책의 stack property를 사용한다. 예를 들어, 네 개의 way를 갖는 캐시가 있다고 하자. 그러면 각 way마다 counter를 두고, 해당 way에 캐시 라인이 있음으로써 막을 수 있었던 miss의 수를 카운터에 기록한다. 이렇게 차례대로 기록하면 way의 수에 따른 miss 수 그래프를 그릴 수 있다.
이 카운터를 캐시의 set 별로 유지하는 것이 UMON-local이고, 전체 set에 대해 유지하는 것이 UMON-global이다. 한편, 이렇게 확인하고자 유지하는 auxiliary tag directory를 전체 set에 대해 유지하지 않고, 일부에 대해서만 유지하는 것이 UMON-DSS이다. 이렇게 확인한 utility 정보를 가지고, 전체 utility가 최대화되도록 파티셔닝한다.
추가로 이 논문에서는 프로세스가 두 개 이상인 경우에 어떻게 할 것인지에 대해서도 설명하고 있다. 하지만 자세히 읽어보지는 않음.

[EuroSys’09] Towards practical page coloring-based multicore cache management
Page coloring에 대해 이해하고자 관련 논문을 읽음. 이 논문 주제 자체에 관심이 있는 것은 아님. page coloring은 가상 메모리 상의 연속된 페이지가 캐시에 골고루 퍼지도록 하는 기법이다. 제일 처음 page coloring 기법에 대해 이야기하는 논문은 [ISCA’90] The TLB slice – a low-cost high-speed address translation mechanism이다. Page coloring을 이용하면 하나의 어플리케이션에서 연속적인 메모리 접근이 캐시 전체에 골고루 퍼지도록 해, 캐시 미스를 줄일 수 있다. 그 외에 운영체제 수준에서 어플리케이션의 성능 향상을 위해 캐시 파티셔닝을 할 때 적용할 수도 있다.

[ISCA’06] A Case for MLP-Aware Cache Replacement
이 논문에서는 메모리 수준에서의 병렬성을 인지하는 캐시 교체 기법을 제안한다. 캐시 미스가 있을 때 명령어를 처리하지 못하는 것은 상당한 성능 저하를 일으키는데, 이는 메모리 수준에서의 병렬성(MLP)을 활용해 해결할 수 있다. MLP를 사용하면 긴 지연을 갖는 메모리 접근이라 하더라도 프로세서의 stall을 방지할 수 있다.
하지만 현재의 캐시 교체 기법은 이러한 MLP를 고려하지 않고 캐시 교체를 하고 있다. Belady’s OPT를 사용한다고 하면, 전체 캐시 미스 횟수를 줄이려 할 것이다. 하지만 미스라고 해서 모두 같은 미스가 아니기 때문에 이것이 최선인 것은 아니다. 스톨을 일으키는 독립된 캐시 미스 2개보다, 스톨을 거의 일으키지 않는 여러 개의 캐시 미스 4개가 더 나을 수 있는 것이다. 이런 상황에서는 Belady’s OPT 알고리즘보다 MLP 인지 캐시 교체 알고리즘이 더 좋은 성능을 낼 수 있다.
지금까지 MLP를 향상시키기 위한 많은 연구들이 있었으나, 캐시 교체 기법에는 이를 적용한 적이 없었다. 이 논문에서는 처음으로 MLP를 캐시 수준에 적용하고자 한다. 이 논문에서는 MLP-cost를 측정한 다음, 이를 적용해 캐시 교체 기법에 적용한다. 기존의 LRU는 캐시 라인 중에 가장 늦게 들어온 것 (최신성에 대한 점수가 최하인 것)을 교체했다면, LIN은 캐시 라인 중에 최신성에 대한 점수와 MLP-cost의 합이 최소인 것을 교체한다.
하지만 이렇게 만든 LIN이 LRU보다 항상 좋은 성능을 내는 것은 아니다. 경우에 따라서는 LRU가 더 좋은 성능을 내기도 하고, LIN이 더 좋은 성능을 내기도 한다. 이 두 가지를 사용해 성능 향상을 꾀하는 가장 간단한 방법은 tournament selection 기법(TSEL)을 사용하는 것이다. 이 기법은 main tag directory (MTD)외에도 auxiliary tag directory (ATD) 두 개를 둔다. 하나는 LIN을 구현하고, 다른 하나는 LRU를 구현해 둘 중에 어떤 것이 더 좋은 성능을 내는지 확인한다. 이 때 좋은 것을 선택하기 위해 saturating counter (SCTR)을 사용한다. 이 기법은 단순하지만 비용이 너무 많이 든다. 이 기법을 TSEL-local이라 한다.
TSEL-local은 모든 set에 대해 ATD-LIN, ATD-LRU, saturating counter를 두고 비교했다면, TSEL-global은 전체에 대해 satruating counter를 적용한다. 이 방법도 여전히 비용이 많이 들고, 이를 해결하고자 sampling based adaptive replacement (SBAR)를 고안한다. ATD를 하나로 줄이고, 해당 ATD에서는 ATD-LRU만 적용한다. 그리고 MTD를 leader set과 follower set으로 구분한다. Leader set에서는 LIN을 사용하고, ATD-LRU에서는 LRU만 사용한다. 그리고 saturating counter의 결정에 따라 follower set에 LIN을 적용하기도 하고, LRU를 적용하기도 한다.

[ISCA’08] Corona: System Implications of Emerging Nanophotonic Technology
many-core microprocessor의 성능이 10 gigaflop에서 10 teraflop까지 향상될 것으로 기대된다. 이를 지원하기 위해서는 메모리와 코어 내부의 대역폭도 이를 지원해야 한다. 핀 개수의 제한, 전기적 신호 에너지의 한계, 회로의 확장성 한계 때문에 이를 지원하기 쉽지 않다. 이러한 문제를 nanophotonic interconnection을 사용하면 해결할 수 있다. Corona는 nanophotonic interconnection을 사용하는 3D many-core architecture이다. 부동소수점 연산을 최대 10 teraflops까지 지원한다. Nanophotonic interconnection을 사용하면 전력 소모와 면적을 획기적으로 줄일 수 있다. 이 논문에서는 nanophotonic interconnection을 CMOS 공정에 적용 가능함을 보여준다.
Nanophotonic network는 신호를 전송하기 위한 waveguide, 빛을 내는 light source, 빛을 감지하기 위한 photodiode, 신호를 조작할 switch가 필요하다. Waveguide는 광섬유를 사용하며, 빛을 감지하기 위한 물질로는 게르마늄을 사용한다. 게르마늄은 CMOS 공정에서 이미 사용되고 있으며, 빛을 감지하기에 좋은 특성을 갖는다. 광원은 레이저를 직접 조작해서 사용할 수도 있고, 외부 광원을 내부적으로 조작해서 사용할 수도 있다. 내부적으로 빛을 변조하기 위해서는 ring resonator를 사용한다. waveguide에 아주 가깝게 붙여놓은 다음, 전기적으로 조작해 지나는 빛과 공명하도록 만들 수 있다. Ring resonator는 detector, injector로 사용될 수도 있다.
Corona 아키텍쳐는 여러 개의 클러스터로 이루어진다. 한 개의 클러스터는 네 개의 코어와 허브, 메모리 컨트롤러 등으로 이루어진다. 클러스터끼리는 optical interconnect로 연결된다. 클러스터끼리의 연결은 크게 두 종류로 나뉘는데, optical crossbar와 optical broadcast bus로 나뉜다. 그리고 이 두 가지 외에 추가로 arbitration logic이 필요하다. Optical crossbar에 대한 개념은 figure 4를 보면 쉽게 이해할 수 있고, optical arbitration logic은 figure 5를 보면 이해할 수 있다.
메모리도 마찬가지로 optical하게 연결된다. Optically connected memory라고 불리기에 OCM이라 표현한다. 메모리와 클러스터의 연결에서 클러스터는 master, 메모리는 slave가 된다. 클러스터에서 빛을 통해 명령을 내리고, 메모리에서는 명령을 받은 이후 들어오는 빛에 정보를 실어 보낸다.
전반적으로 논문의 구성과 내용이 어렵고 생소해서 이해하기 어려웠다. 실제로 설계하는 느낌으로 논문을 썼으며 그래서인지 논문 내용이 전반적으로 power와 area에 대한 내용이 많았다. Power와 area에 대한 내용은 읽어도 감이 오지 않아 이해하기 어려움.

[NOCS’09] Silicon-photonic Clos networks for global on-chip communication
이 논문에서는 photonic network에서는 crossbar를 구성하는 것이 전력 소모가 크므로, Clos network를 구성해 crossbar를 대신하기를 주장한다. 세 번째 섹션 “Electrical On-Chip Networks”에서 기존에 사용하던 on-chip network를 소개하는데, NoC에 대한 개념이 부족한 나에게는 도움이 되었다. nanophotonic interconnection network에서 어떻게 SWMR, MWSR를 구성할 수 있는지 그림으로 확인할 수 있어서 이해하기에 좋았다.

Advertisements
Tagged with: , , , , , , , , , , , , , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 90,796 hits
%d bloggers like this: