고객센터

  • 공지사항
  • EVENT
  • 뉴스레터
  • FAQ
  • 1:1문의

과정검색
  • 기업위탁 과정
  • 장비구매/개발
  • 강의실 대여
  • 임베디드 구인구직

뉴스레터

홈으로고객센터 뉴스레터

[m-Story] MDS아카데미 뉴스레터 1월호

  • 작성자관리자
  • 작성일2016.12.27
  • 조회수371
 
m-Story

IT융합 전문 교육센터 MDS아카데미 뉴스레터 1월호 

지난 뉴스레터 보기

MDS아카데미

|

MDS테크놀로지

|

TRACE32

|

윈도우 임베디드 OS

|

Splunk 빅데이터 솔루션

|

Industrial IoT

 

교육과정 안내

MDS아카데미는 사업주 직업능력개발 훈련기관으로서 교육 수료 후(80%출석) 교육비 일부가 사업장으로 환급됩니다.
자세히 보기 >

교육분야

세분류

과정명

교육일정

교육비

교육장소 : 구로 교육센터 (대륭포스트타워 1차)  약도보기 >

프로그래밍
아카데미

C

C 프로그래밍 기법 향상(이것이 C 언어다)

1.9(월) ~ 1.13(금)

66만원

임베디드 C 프로그래밍

1.9(월) ~ 1.12(목)

77만원

임베디드SW
아카데미

아키텍처

PowerPC 프로세서 구조 및 제어

1.16(월) ~ 1.19(목)

88만원

펌웨어

오픈소스 하드웨어 플랫폼 프로그래밍

1.16(월) ~ 1.19(목)

88만원

Cortex-M3 구조 및 디바이스 제어(보드증정)

1.16(월) ~ 1.19(목)

88만원

ARM 디바이스 제어

1.16(월) ~ 1.20(금)

88만원

OS System

Android Module Porting & Structure

1.9(월) ~ 1.13(금)

99만원

임베디드 리눅스 시스템 프로그래밍

1.9(월) ~ 1.12(목)

88만원

로봇 운영체제 구조 및 활용

1.16(월) ~ 1.19(목)

88만원

OS App

안드로이드 애플리케이션 개발(Basic)

1.16(월) ~ 1.20(금)

77만원

안드로이드 NDK 프로그래밍 실무

1.9(월) ~ 1.12(목)

88만원

모바일 임베디드 시스템 개발자를 위한 OpenGL

1.9(월) ~ 1.12(목)

99만원

Debugging

안드로이드 메모리 누수 탐지의 기본

1.9(월) ~ 1.11(수)

77만원

교육장소 : 판교 교육센터 1차 (H스퀘어 N동)  약도보기 >

프로그래밍
아카데미

C

ARM기반 C코드 최적화 

1.9(월) ~ 1.12(목)

88만원

임베디드SW
아카데미

Common

ARM기반 자료구조 및 알고리즘

1.16(월) ~ 1.19(목)

77만원

아키텍처

ARM 프로세서 구조 및 활용

1.16(월) ~ 1.20(금)

88만원

ARM Boot Code Design and Analysis

1.9(월) ~ 1.12(목)

88만원

OS System

Android Framework & Libraries 분석

1.9(월) ~ 1.12(목)

99만원

임베디드 리눅스 디바이스 드라이버

1.16(월) ~ 1.19(목)

88만원

Git 형상관리 및 빌드서버 구축

1.9(월) ~ 1.13(금)

88만원

Altera 기반의 하드웨어 설계 및 리눅스 포팅

1.9(월) ~ 1.12(목)

99만원

Debugging

임베디드 리눅스 디버깅

1.16(월) ~ 1.18(수)

66만원

Automotive
아카데미

Control/Testing

SW 테스팅을 위한 MISRA-C의 이해와 실습

1.9(월) ~ 1.12(목)

99만원

차량용 ECU 구현 및 디버깅

1.16(월) ~ 1.18(수)

99만원

IoT 아카데미

Platform/
Control/App

사물인터넷을 위한 통신 프로토콜 분석

1.16(월) ~ 1.18(수)

77만원

Big Data
아카데미

분석/개발

빅데이터를 위한 파이썬 중급

1.9(월) ~ 1.12(목)

77만원

AI 아카데미

딥러닝

파이썬을 활용한 딥러닝기본

1.3(화) ~ 1.6(금)

88만원

딥러닝을 활용한 상황인지 시스템 개발(실습장비증정)

1.23(월) ~ 1.25(수)

109만원

   교육과정 전체 보기 >  

 

So Hot! 뜨거운 관심으로 주목받는 과정

MISRA-C 코딩 룰을 학습하기 위해 임베디드 보드 기반에서
QAC를 활용하여 실습 진행, Embedded SW 소스코드에 QAC 활용

SW 테스팅을 위한 MISRA-C의 이해와 실습

1월 9일(월)~1월 12일(목)
  자세히 보기 >

SW 테스팅을 위한 MISRA-C 개요 / MISRA-C 2004 / MISRA-C 2012 / QAC를 활용한 MISRA-C 적용 프로젝트

전자제어기(ECU, Electronic Control Unit) 소프트웨어 구현 및 통합 단계에서
모델기반 설계 방법 또는 전통적 Coding 방법에 따른 제반 툴을 소개하고
사용법을 습득, 개발 프로세스를 이해

차량용 ECU 구현 및 디버깅

1월 16일(월)~1월 18일(수)
  자세히 보기 >

E/E system Development Overview / Auto Code Generation with Target Link / SW Debugging with TRACE32

사물인터넷에서 통신을 위한 프로토콜 기술 이해, 사물인터넷 기반으로
가장 많이 적용되고 있는 유무선 통신에 대해 학습, 무선 통신에서 보안 취약점을
분석하여 공격 및 방어하는 방법을 학습하여 보안의 스킬을 향상

사물인터넷을 위한 통신 프로토콜 분석

1월 16(월)~1월 18일(수)
  자세히 보기 >

Application Layer Protocol / Device Security / REST API / MQTT

· 조기에 마감될 수 있으니 서둘러 신청해 주시기 바랍니다.

 

기술정보

캐시(Cache) : Locality에 관하여

컴퓨터가 사용되고 연구된 지난 수십 년 동안 컴퓨터 엔지니어들은 프로그램의 수행 패턴(program behavior)을 측정하면서 다음과 같은 현상을 관찰하였다.

- 프로그램들의 메모리 접근 패턴은 무작위(random)가 아니다.
- 메모리 접근 패턴은 시간에 따라 반복되거나 메모리 어드레스 공간상 참조된 데이터와 인접한 데이터를 참조하려는 경향이 있다.

중요한 점은 이러한 경향이 확정된 것이 아니라 단지 관찰된 형상일 뿐이라는 것이다. 즉, 이러한 관찰은 프로그램의 고유한 수행 패턴이라고 주장할 수 없는 단순한 추론이다. 프로그램이 또 다른 수행 패턴을 절대 보이지 않을 것이라고 증명할 수 없는 한, 프로그램의 수행 패턴을 꾸준히 측정하고 관찰해야 하며, 때때로 새로운 수행 패턴을 찾아낼 수도 있다. 이렇게 예측 가능하고 무작위가 아닌 메모리 접근 패턴을 보이는 현상을 Locality of reference라고 한다. 이렇게 명명되는 이유는 우리가 시간과 공간 측면에서 localized 특성을 보이는 프로그램의 메모리 참조 패턴들을 관찰했기 때문이다.

프로그램들이 보여주는 이 locality의 현상들은 단지 관찰된 것일 뿐임을 기억할 필요가 있다. 이 현상은 프로그램들에 내재된 것이 아니며, 특정 프로그램에 요구되는 성질도 아니다. 또한 이 현상이 이 세상 모든 프로그램의 특성을 정확히 표현한 것도 아니다. 이는 단지 관찰된 대부분의 프로그램에서 나타나는 행동 패턴의 경향을 의미하는 것일 뿐이다. 최근에도 컴퓨터 공학자들은 새로운 유형의 현상 관찰을 위해 노력하고 있다.

지난 십년간, 컴퓨터 그래픽 알고리즘들 및 컴퓨터 시뮬레이션, 회로 시뮬레이션, HDL 코드 해석 등과 같은 다른 응용 분야의 알고리즘들이 광범위하게 사용됨에 따라 또 다른 범주의 프로그램 행동 패턴이 발견되고 있다.

이러한 프로그램들은 일반적으로 동적 데이터 구조를 활용하고 동일한 데이터를 동일한 순서로 반복 접근한다. 따라서 이 프로그램들의 행동 패턴은 본질적으로 예측 가능하다. 그러나 동일한 데이터를 참조하는 두 번의 접근간의 시간 간격은 크며(따라서, 해당 프로그램에서 temporal locality는 크게 중요해 보이지 않는다), locality의 정의에 따르면 이 프로그램들은 locality를 별로 보이지 않지만 그럼에도 불구하고 규칙적이고 예측 가능하며 활용 가능한 행동 패턴을 보인다.

우리가 시간과 공간으로 모든 것을 다루려하기 때문에 이러한 유형의 행동 패턴을 활용하는 것은 쉽지 않다. 따라서 이러한 행동 패턴이 존재한다는 사실 자체를 간과하기 쉽다. 그러나 이러한 프로그램의 행동 패턴은 명백하게 존재 이러한 행동 패턴은 algorithmic locality라 부른다.

 

Q&A

Q1. Temporal locality란 무엇인가?

A. Temporal locality는 프로그램의 실행 과정 중에 데이터 항목들을 반복적으로 사용하는 프로그램의 행동 경향이다. 이는 캐시의 근본적인 원리로 적절한 데이터 관리 휴리스틱 기법에 대한 명확한 방향성을 제시한다. 어떤 프로그램이 특정 명령어 또는 특정 데이터 변수를 사용할 경우, 그 프로그램이 이러한 명령어 또는 데이터를 가까운 미래에 다시 원할 경우를 대비하여 사용된 명령어 또는 데이터를 가까이 두는 것이 좋을 것이다.

Temporal locality를 활용하는 데이터 관리 정책 또는 휴리스틱 기법들 중 하는 요구페치(demand-fetch)이다. 이 정책은 프로그램이 명령어 또는 데이터 항목을 요구(참조)할 때, 캐시 하드웨어 또는 소프트웨어가 주 메모리로부터 그 항목을 페치하고 캐시에서 유지하도록 한다. 이 정책은 하드웨어로 쉽게 구현될 수 있다. 주 메모리에서 프로세서 코어로 어떤 데이터(명령어, 변수, 상수들)를 가져오면 그 데이터의 사본은 캐시에 저장된다. 따라서 프로세서는 특정 데이터 항목을 주 메모리에서 찾기 전에 캐시에 사본이 존재하는지를 먼저 검사해야 한다.

Temporal locality를 활용할 때 고려해야하는 유일한 제약은 캐시의 크기이다. 캐시가 충분히 크면, 어떤 데이터 항목도 저장소(banking store)로부터 한 번 이상 페치될 필요가 없다. 저장소는 캐시보다 하위에 존재하는 저장 계층을 의미하는 용어로서 주 메모리, 디스크 시스템, 또는 다른 캐시 계층일 수도 있다는 것을 유념하자. 이 용어는 전체적으로 캐시 계층의 하위에 존재하는 메모리 계층 구조의 나머지 부분을 의미할 수도 있다.

 

Q2. Spatial locality란 무엇인가?

A. Spatial locality는 연관된 객체들을 메모리 공간에 함께 모아놓는 프로그래머와 컴파일러의 경향에서 비롯된다. 프로그램들은 사람과 유사한 방식으로 연관된 데이터 항목들을 잇따라 참조하는 경향이 있기 때문에, 짧은 시간 구간 안에서의 메모리 참조들은 메모리 공간 안에 무리지어 있는 경향이 있다. 이 행동의 고전적인 예제는 배열의 요소들이 순차적으로 처리되는 배열 처리이다. ([i]와 [i+1]은 메모리에서 인접하고, i+1은 i가 처리된 직후에 바로 처리된다)

Temporal locality처럼 spatial locality 역시 명백한 데이터 관리 정책으로 이어지며, spatial locality에 대한 이 정책은 일반적으로 미리보기(lookahead)라고 불린다. 이 정책에서는 명령어 i(또는 데이터 항목 i)가 프로그램에 의해 요청될 때, 해당 데이터가 프로세서 코어로 옮겨지며 명령어 i+1(또는 데이터 항목 i+1) 또한 같이 옮겨진다. 이 정책의 가장 간단한 형태는 단일 데이터 항목보다 더 큰 크기의 캐시 블록이라 불리는 원자적(atomic) 단위들로 캐시를 구성하는 것이다.

캐시 블록의 크기는 데이터 접근 단위를 의미하므로 신중하게 결정해야 한다. 예를 들어, 기본 데이터 단위가 4바이트 워드인 프로세서는 4개의 데이터 워드를 포함하는 16바이트 캐시 블록 또는 8개의 데이터 워드를 포함하는 32바이트 캐시 블록을 사용할 수 있다. 캐시 블록은 원자적(캐시와 메모리 간의 데이터 교환 단위임을 의미하며, 따라서 모든 읽기/쓰기 시 일정한 양의 데이터가 이동된다) 이기 때문에, 프로그램이 단일 데이터 항목을 요청하면 메모리로부터 해당 데이터 항목의 인접 데이터 항목들도 함께 페치된다.

목록