Low-power techniques for processor bus design

No Thumbnail Available

Files

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Bachelor's thesis
Electronic archive copy is available locally at the Harald Herlin Learning Centre. The staff of Aalto University has access to the electronic bachelor's theses by logging into Aaltodoc with their personal Aalto user ID. Read more about the availability of the bachelor's theses.

Date

2024-05-21

Department

Major/Subject

Elektroniikka ja sähkötekniikka

Mcode

ELEC3013

Degree programme

Sähkötekniikan kandidaattiohjelma

Language

en

Pages

36

Series

Abstract

A processor (CPU) is an essential element of a computer system. Without the CPU, the computer system would not function. The CPU communicates with other components using the system bus. The system bus consists of three different buses that are the address bus, the data bus, and the control bus. While operating, all of the computer system components will dissipate some amount of power. Currently, battery-powered devices have become more common, and because of that, the maximization of battery life has become a crucial design factor for electronics designers. The total power consumption of a CPU can be reduced by different methods, and one method is bus encoding. This thesis introduces and examines different bus encoding methods that aim to lower the overall power consumption of a system by reducing the transition activity in the system bus. This thesis is a literature review. The introduced bus encoding methods can be divided into three subgroups that are: algebraic codes, permutation codes, and probabilistic codes. The algebraic codes take multiple operands to encode the information of a bus. The decoding is performed by utilizing arithmetic or bit-level logic operations. The permutation codes are codes involving permutations of a set of source information. The probabilistic codes are codes utilizing different probabilistic methods to reduce the power consumption of a bus. All of the introduced bus encoding methods have been compared to each other in different applications. The comparison results indicate that all the bus encoding methods are not optimal in the same applications. Some bus encoding methods are better in some applications than others. The introduced bus encoding methods can be divided into two different subgroups. Some bus encoding methods are ideal for encoding the data bus, and others are ideal for address bus encoding. Furthermore, the comparison results indicate that the bus encoding methods can be an effective technique to lower the overall power consumption of a computer system. The implemented bus encoding methods have to be only chosen wisely.

Prosessoria voidaan kutsua tietokoneen ytimeksi. Ilman prosessoria tietokonejärjestelmä ei toimisi. Prosessori kommunikoi toisten tietokonekomponenttien kanssa järjestelmäväylää käyttäen. Tämä väylä yhdistää kaikki komponentit toisiinsa. Järjestelmäväylä muodostuu kolmesta erillisestä väylästä, jotka ovat osoite-, tieto- sekä ohjausväylä. Prosessori operoi tekemällä kirjoitus- ja lukukäskyjä toisille komponenteille. Nämä käskyt välittyvät järjestelmäväylää pitkin komponenteille. Kaikki tietokonejärjestelmän operaatiot tapahtuvat binäärilukuina – nollina ja ykkösinä. Operoidessaan mikä tahansa tietokonejärjestelmän komponentti kuluttaa jonkin verran tehoa. Nykyisin akkukäyttöiset elektroniikkatuotteet ovat yleistyneet, minkä seurauksena laitteiden akunkeston maksimoimisesta on tullut tärkeä tavoite elektroniikkasuunnittelijoille. Kaikesta ylimääräisestä tehonkulutuksesta kannattaa päästä eroon akunkeston maksimoimiseksi. Prosessorin tehonkulutusta voidaan aleentaa monella eri tavalla. Yksi tavoista on väyilien koodaus. Tämän kandidaatintyön tavoitteena on tutkia erilaisia väylän koodaustapoja, joiden tavoitteena on minimoida bittilukujen muutokset väylillä. Bittilukujen muutoksien määrä on suoraan verrannollinen dynaamiseen tehonkulutukseen, joten väylien koodaus on tehokas tapa vaikuttaa prosessorin kokonaistehonkulutukseen. Tämä kandidaatintyö on toteutettu kirjallisuustutkimuksena. Väylän koodaus voidaan jakaa karkeasti kolmeen eri kategoriaan, joiden kaikki koodaustavat lähestyvät väylän koodaamista eri näkökulmista. Nämä kategoriat ovat algebraaliset koodit, permutaatiokoodit sekä todennäköisyyskoodit. Algebraaliset koodit käyttävät kahta tai useampaa laskettavaa tiedon koodaamiseen. Koodattu informaatio tuotetaan aritmeettisilla tai bittitason logiikkaoperaatioilla. Permutaatiokoodit ovat koodeja, jotka sisältävät lähdeinformaation permutaatioita. Todennäköisyyskoodit ovat koodeja, jotka nimensä mukaisesti käyttävät hyväkseen todennäköisyyslaskentaa. Esimerkiksi todennäköisyyskoodit voivat tavoitella datan entropian laskemista mahdollisemman pieneksi. Kaikkia tässä kandidaatintyössä esiteltyjä väylän koodaustapoja verrattiin toisiinsa erilaisissa käyttätarkoituksissa. Vertailussa käy ilmi, että kaikki koodaustavat eivät sovi samoihin käyttötarkoituksiin. Esitellyt koodit voidaan jakaa karkeasti kahteen eri ryhmään. Toiset koodaustavat ovat ideaalisia tietoväylän koodaamiseen, koska nämä kyseiset koodaustavat hyötyvät informaation satunnaisuudesta. Informaation satunnaisuus on enemmän tyypillistä etenkin tietoväylissä. Toisen ryhmän koodaustavat ovat tehokkaampia laskemaan prosessorin tehonkulutusta, kun näitä koodaustapoja käytetään osoiteväylän koodaamisessa. Tähän ryhmän kuuluvat koodaustavat käyttävät hyväkseen yleisesti tunnettua tietoa siitä, että prosessori hyvin todennäköisesti kutsuu vierekkäisiä osoitteita operoidessaan. Vertailussa käy myös ilmi, että väylän koodaus on parhaimmillaan erittäin tehokas tapa laskea bittiarvojen muutoksia ja täten prosessorin tehonkulutusta. Vaatimuksena on se, että käyttötarkoitukseen sopivat koodaustavat valitaan eri väylille.

Description

Supervisor

Turunen, Markus

Thesis advisor

Korsman, Aleksi

Keywords

low-power, system bus, power consumption, bus encoding

Other note

Citation