리튬이온 배터리 충방전 기술자료

Posted at 2009/02/03 13:41 // by Daniel

보호되어 있는 글 입니다.
내용을 보시려면 비밀번호를 입력하세요.

The case for energy-proportional computing

Posted at 2008/11/26 18:23 // in Research/Papers Review // by Daniel

L. Barroso and U. Holzle, “The case for energy-proportional computing,” IEEE Computer, December 2007.

간단한 내용.

구글의 입장에서 서버의 Low power기술이 어떻게 필요한 지 설명

 

image

서버는 모바일 장치와 달리 utilization(사용율)의 비율이 100%(peak), 0%(idle)이 아닌 경우가 많고 10~50% 사이, 특별히 20~40%사이가 많음

image

대강의 전력 소모를 보면 utilization을 기준으로 0일 때도 power(전력)는 peak의 50%를 소모함.(녹색선)

그래서 에너지 효율성(전력을 사용율로 나눔)은 쭈욱 떨어지게 됨(빨강)

 

그래서 아래 그림과 같이 utilization이 0 이 될 때 전력소모가 10%정도로 잘 떨어져주면 좋겠음(결국 그래프 각도가 문제)

그러면 효율은 10~50% 사이에서 꽤 괜찮음

image

그러려면 CPU 말고 주변기기의 전력소모 특성이 높아야 함. 디스크는 쓸 때 안쓸 때 차이가 크지만 대책없이 sleep하면 깨어나는 시간과 전력비용이 크다든지, 네트웍 디바이스는 끄는 모드란 게 없든지 --> Active low power 모드가 필요

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

cfsm - Codesign Finite State Machine generater

Posted at 2008/09/22 12:17 // in Research // by Daniel

http://www.mindrot.org/projects/cfsm/

FSM 스펙을 텍스트로 받아서 C 코드(템플릿)을 만들어주는 프로그램이랍니다.


아래와 같은 샘플 스펙 텍스트가 있을 때

image

image

이런 그래프로 나타낼 수 있는 코드를 생성해줍니다.

cvs로 다음과 같이 다운받습니다.

$ cvs -d anoncvs@anoncvs.mindrot.org/cvs checkout mtemplate cfsm

그리고 mtemplate와 cfsm을 make

$ cd mtemplate
$ make
$ cd ../cfsm
$ make

그러면 cfsm 파일도 생기고 기본적인 테스트도 돌립니다.

테스트로 만든 소스는 cfsm/regression에 있습니다.

C코드를 생성하려면 다음과 같이 하면 됩니다.(-d 옵션)

$ ../cfsm  -t.. -d -o t_ex0_fsm.c ../example.fsm
cfsm: Writing C source to "t_ex0_fsm.c"
cfsm: Writing C header to "t_ex0_fsm.h"

만일 스테이트 다이어그램 그림으로 만들어보고 싶으면(graphviz가 깔려있어야 함)

$ cd cfsm/regression
$ ../cfsm -t.. -g -o t_ex0_fsm.dot ../example.fsm
$ dot -Tjpg t_ex0_fsm.dot -o t_ex0_fsm.jpg

이런식으로 합니다.


# This file is in the public domain
# Damien Miller 2007-02-07

# $Id: t1_fsm.fsm,v 1.4 2007/11/18 09:51:19 djm Exp $

precondition-function-args new-state
transition-function-args none

state T1
    initial-state
    on-event T1_DONE -> T2
state T2
    on-event T2_DONE -> T3
state T3
    on-event T3_DONE1 -> T2
    on-event T3_DONE2 -> T4
state T4

이런 간단한 스펙을 바꾸면,

...생략
switch(old_state) {
case T1:
    switch (ev) {
    case T1_DONE:
        new_state = T2;
        break;
    default:
        goto bad_event;
    }
    break;
case T2:
    switch (ev) {
    case T2_DONE:
        new_state = T3;
        break;
    default:
        goto bad_event;
    }
    break;
case T3:
    switch (ev) {
    case T3_DONE1:
...후략

이런 코드가 생기고,

image

이런 그림으로 나타낼 수 있게 그래프 파일도 생성 됩니다.


Usage: cfsm [-h] [-HCD] [-o output-file] fsm-file
Command line options:
    -h               Display this help
    -d               Generate C header file in addition to source file
    -D               Only generate C header file (and not a source file)
    -g               Generate Graphviz dot file instead of C source/header
    -m template_file "Manual" output mode using user-supplied template
    -o output_file   Specify output file (default: fsm.[c|h|dot])
    -t template_dir  Specify path to C and Graphviz templates

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

오픈소스 웹 브라우저

Posted at 2008/08/13 23:39 // in Research // by Daniel

소스가 가벼운 웹 브라우저 어플리케이션을 찾아보기로 했습니다.

병렬화 이슈를 찾아보고 풀브라우징 되는 어플이 있으면 주제로 삼으려고

 

찾아본 것들

  • dillo

gtk1.2 써서 컴파일해야함

image

데비안 패치 해야 프레임 지원 켜짐.

비교적 빠른 편, 탭 브라우징도 지원

CSS 지원이 완벽하지 않고 플래시, 동영상 지원 안됨

$ apt-cache depends dillo
dillo
  의존: libc6
  의존: libfontconfig1
  의존: libfreetype6
  의존: libgcc1
  의존: libglib1.2ldbl
  의존: libgtk1.2
  의존: libjpeg62
  의존: libpng12-0
  의존: libssl0.9.8
  의존: libstdc++6
  의존: libx11-6
  의존: libxext6
  의존: libxft2
  의존: libxi6
  의존: libxrender1
  의존: wget
  의존: zlib1g
  충돌: <gzilla>
  대체: <gzilla>

 

  • midori

image image

빠른 편. 아파치 인증이 없는 듯. flash 안됨.

CSS 지원은 비교적 잘 됨. (안깨지고 잘 나옴) 소스코드 크기도 비교적 작음

의존하는 패키지가 좀 있음

$ apt-cache depends midori
midori
  의존: libatk1.0-0
  의존: libc6
  의존: libcairo2
  의존: libfontconfig1
  의존: libfreetype6
  의존: libglib2.0-0
  의존: libgtk2.0-0
  의존: libpango1.0-0
  의존: libpixman-1-0
  의존: libpng12-0
  의존: libsexy2
  의존: libwebkitgtk1d
  의존: libx11-6
  의존: libxcursor1
  의존: libxext6
  의존: libxfixes3
  의존: libxi6
  의존: libxinerama1
  의존: libxml2
  의존: libxrandr2
  의존: libxrender1
  의존: zlib1g

  • netsurf

RISC OS, unix(linux, BeOS?)지원. 느린 듯.

창 크기 변경 엄청 느림, CSS 페이지 많이 느림, 그림 뜨는 시간 느림. 탭 지원 안됨.

image

프레임 지원, 또는 파서 지원이 약한 듯.

HTML parser error : Tag o:p invalid
  style='font-size:9.0pt;font-family:Verdana'><o:p></o:p></span></b></p>
                                                  ^
namespace warning : Namespace prefix o is not defined
  style='font-size:9.0pt;font-family:Verdana'><o:p></o:p></span></b></p>

이런 에러가 좍 뜸.

image

  • midbrowser

모질라 게코 기반 임베디드용 브라우저라는데 실행시 에러남

가장 무거운 소스(45메가)

 

  • amaya

웹브라우저+HTML 에디터 W3C에서 제공하는 테스트베드 - 프레임지원 미비? 브라우저로 쓸 것은 아닌 것 같음

 

  • links gui

데비안 패키지 이름은 links2

links -g 로 실행하면 x화면, svga화면에서 실행할 수 있음.

아주 가벼움. 빠른 속도 그러나 한글 지원 못봤음. 역시 그림 이외엔 다른 지원 없을 듯. CSS 지원 완벽하지 않음.

$ apt-cache depends links2
links2
  의존: libc6
  의존: libdirectfb-1.0-0
  의존: libgpmg1
  의존: libjpeg62
  의존: libpng12-0
  의존: libssl0.9.8
  의존: libsvga1
    svgalib1-libggi2
  의존: libtiff4
  의존: libx11-6
  의존: zlib1g

image

image

게코와 웹킷도 봐야할 듯.

 

참고로 소스 크기

377K midori_0.0.17.orig.tar.gz
542K dillo_0.8.6.orig.tar.gz
965K netsurf_1.1.orig.tar.gz
4.0M links2_2.1pre32.orig.tar.gz
7.5M amaya_9.55~dfsg.0.orig.tar.gz
45M midbrowser_0.3.0rc1a-1~8.04.2.tar.gz

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

Intel Atom 프로세서

Posted at 2008/06/28 16:02 // in Research // by Daniel
http://www.intel.com/technology/atom/index.htm
사용자 삽입 이미지

이제껏 모르고 있었는데요 인텔 아톰 프로세서라는 게 출시 됐는데 TDP(파워)가 0.6~2.5와트 소모된다고 하고, 클럭은 1.8GHz까지 가능하다고 합니다. EM64T도 호환되고 HT도 지원하고요 VIA C3가 아니라 ARM에의 대항마인 것 같은데요

ISSCC2008에 소개되기도 했다고 하긴 하던데

The 2 GHz variant of the Silverthorne processor will operate at 1 volt and it will have performance equivalent to a first generation "Banias" Pentium M notebook processors circa 2003. Rattner confirmed this was for single-threaded performance on a broad range of applications. This would seem to imply that with multithreaded applications, the performance would be even higher than Banias which lacks Hyper-Threading.
http://blogs.zdnet.com/Ou/?p=987 이에 따르면 MPCore보다 훨씬 좋은 single thread 성능을 보일 것으로 보입니다 이게 그렇게 좋다면 크게 이슈 될 거 같은데 별 말이 없는 거 같네요. ISCA에서도 들어보지 못했구요 어떻게 평가해야 할까요? http://chitsol.com/537
크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

Optimizing Dual-Core Execution for Power Efficiency and Transient-Fault Recovery

Posted at 2008/05/19 00:08 // in Research/Papers Review // by Daniel

Optimizing Dual-Core Execution for Power Efficiency and Transient-Fault Recovery IEEE PADS'07

Dual-Core Execution- Building a Highly Scalable Single-Thread Instruction Window (한글 설명) 여기 논문의 둘 째 판 쯤 됨.PACT05?

제대로 읽어보진 않았고 abstract정도만..

Dual-Core Execution(DCE)이란 single thread 프로그램을 코어 두개로 실행해서 빠르게 하겠다는 것인데, 이번 논문은 여기에 중복되는 계산을 좀 줄여서 파워와 안정성을 개선하겠다는 것인 듯.

Compared to the original DCE, the optimized DCE has similar speedups (34 percent on average) over single-core processors while reducing the energy overhead from 93 percent to 31 percent.


역시 에너지는 싱글 코어 때보다 더 소모되긴 하는데, 속도 30% 증가에 에너지 30% 더 소모. linear하군요. 그게 진짜인지는 논문을 읽어봐야 할 듯.
크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

최적화

Posted at 2008/05/16 18:44 // in Research // by Daniel

공학에서 최적화 문제는 현상을 representation 잘하는 수식을 찾아내되 풀수 있을 만큼 쉬운 수준의 식으로 찾아야 이후에 수식을 통해 최적을 찾을 수 있고 그렇지 않다면 heuristic으로밖에 갈 수 없다(NP문제가 됨). - 연세대 모정훈 교수
http://www.stanford.edu/class/ee364a/index.html

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

좋은 분 발견

Posted at 2008/05/06 20:49 // in Research // by Daniel

http://naivete.isloco.com/

제가 있는 분야와 비슷한 쪽 공부하시는 분인 것 같은데, 논문들 읽고 독후감식으로 정리를 하셨네요

좋은 evaluation 감사.

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

Multicore - ASIC-like design

Posted at 2008/05/06 20:41 // in Research // by Daniel

"This is one reason that ASICs have significantly lower power than processors. They generally minimize the use of large centralized memories, and prefer local registers or recomputation. Further, these local registers provide direct communication in a pipelined stream-like fashion between compute entities and avoid the use of shared memories to pass values."

공유된 메모리가 에너지 소모를 크게 한다는 이야기입니다. ASIC이 전력소모가 적은 이유가 공유 메모리를 쓰기 보다는 재계산이나 통신(파이프라인에 직접)을 통해 전달하기 때문입니다.

Embedded Systems Design에서 기사를 본 거였는데, 발표자료를 찾아보니 같은 내용이 있기에 보니까 저자가 같네요. 2007년 기사입니다.

 

image

Communication Cheaper than Memory Access, Anant Agarwal

위의 표를 보면 차라리 네트웍으로 보내는 것이 캐시나 메모리를 통하는 것 보다 훨씬 적게 에너지가 소모됩니다. 되도록 공유 메모리를 적게 쓰는 것이 좋겠네요. 그리고 메모리 자체도 작게 (footprint)

그래서 말인데,

왜 ASIC으로 하면 전력소모가 적은데 그걸 embedded processor를 써서 만들면 에너지 소모가 클 수밖에 없을까요?

같은 일을 해도 OS 올라가고 메모리 붙이고 하면 에너지 소모가 크게 됩니다. 또 multicore라도 shared memory model은 어쩔수 없나봅니다. 에너지 소모가 ASIC보단 많게되겠네요

어쩌면 SW 패러다임이 바뀌어야할 것 같습니다. 멀티코어가 1K ,10K쯤 되면 코어들은 일종의 look-up table이 될 거라고 하던데 그럴 때는 메모리 공유보다는 네트웍 모델이나 stream 모델이 맞을 것 같습니다. 그런 이름이 있는지는 모르지만. streamC라는 게 있던데.. 좀 된 자료입니다. 2002년. http://graphics.stanford.edu/streamlang/ 구글에서 stream processor를 찾아보면 많이 나오는군요. 이건 어떻게 봐야되나

http://www.embedded.com/products/integratedcircuits/173400008?_requestid=405592 여길 나중에 좀 읽어봐야겠습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]

rMPI

Posted at 2008/05/06 20:23 // in Research/Papers Review // by Daniel

http://www.springerlink.com/content/n4u12093t15m8913/

http://dspace.mit.edu/bitstream/1721.1/35612/1/75293670.pdf

James  Ryan Psota 2005 thesis(MS) MIT

rMPI: Message Passing on Multicore Processors with On-Chip Interconnect

With multicore processors becoming the standard architecture, programmers are faced with the challenge of developing applications that capitalize on multicore’s advantages. This paper presents rMPI, which leverages the on-chip networks of multicore processors to build a powerful abstraction with which many programmers are familiar: the MPI programming interface. To our knowledge, rMPI is the first MPI implementation for multicore processors that have on-chip networks. This study uses the MIT Raw processor as an experimentation and validation vehicle, although the findings presented are applicable to multicore processors with on-chip networks in general. ...

MPI를 사용한 CMP용 rMPI.

MPI가 오버헤드가 크긴 하다. Shared memory(pthread)를 쓰는 경우보다.

첫번째 on chip MPI라서 의미가 있다고 한다.

 

크리에이티브 커먼즈 라이센스
Creative Commons License

댓글을 남겨주세요.

[로그인][오픈아이디란?]