10 research outputs found

    Ανάπτυξη αρχιτεκτονικών και τεχνικών μεταφραστών για διαχείριση μνήμης σε ενσωματωμένα συστήματα

    No full text
    Today the continuously increasing requirements of applications in processing power as well as their frequent upgrade with new, are the spark for the promotion of research for the growth of systems that will respond to the increased needs for processing power, fast implementation, and low cost. In order to satisfy all three objectives the growth and automation of optimised design techniques is required. With the new techniques of compilation the systems will become more efficient while the automation of techniques will accelerate the designing process. The object of the present thesis is related with the development of architectures and compiler techniques for memory management perspective in embedded systems. The main objective is the optimisation of execution of applications as for the speed, area and power consumption in the embedded systems. This is achieved with the development of original compiler techniques but also finding of most optimal architectures. Moreover fundamental objective of the thesis is the automation of these techniques for the fast determination of most optimal solutions. The automation is achieved with model tools for compiling and evaluating of architectures. a) Development of Architectures for Memory Management. A decoupled processors architecture with a memory hierarchy is presented consisting only of scratch–pad memories, and a main memory. This architecture exploits both the benefits of scratch-pad memories and the parallelism between address computation and application data processing. The application code is split in two programs the first for computing the addresses of the data in the memory hierarchy and the second for processing the application data. The first program is executed by one of the decoupled processors called Access which uses compiler methods for placing data in the memory hierarchy. In parallel, the other processor called Execute runs the second program. The decoupled processors and the memory hierarchy are all synchronized through the use of a simple handshake protocol. The Access processor requires strong communication with the memory hierarchy which strongly differentiates it from traditional uniprocessors. The architecture is compared in performance with the MIPS architecture with cache and also with scratch-pad memory hierarchies and with the existing decoupled architectures showing its higher normalized performance. Experimental results show that the performance is increased up to 3.7 times. Compared with MIPS the proposed architecture achieves the above performance without having penalties in energy delay product costs. Continuing, more research is done on Scratch-pad memories. They are used today in data dominated applications of embedded systems for gaining system’s energy and performance. However, when the execution flow depends on the application’s inputs there is not always possible to be sure about the exact data contents of a scratch-pad as the compiler cannot predict the input randomness. Moreover, portions of already stored data cannot be efficiently combined with new random data entries of scratchpad. This is because all data blocks are copied to scratch-pad without considering whether data portions of those blocks have already been stored in it. Temporal locality that occurs randomly at these cases is not exploited. In this paper, we present an architecture that is able to provide the information about the exact data contents of scratch-pad during execution and can also do all the necessary operations for placing the new data blocks in scratch-pad. Thereby, the temporal locality which occurs randomly and cannot be identified by the compiler is exploited. The proposed architecture is strongly connected to the system’s scratch-pad and the processor’s compiler. It operates in a time and energy efficient manner. It is compared with the MIPS architecture with cache and with scratch-pad memories showing its higher normalized performance and lower normalized energy consumption. Experimental results show that the performance is increased up to 5 times compared to cache architectures and 2,5 times compared to existing scratch-pad architectures while the energy decreases up to 3,9 times and 1,9 times respectively. We explain that our architecture behaves better than existing ones in most of the cases while as a worst case it behaves similar to them. The energy delay product results prove the benefits of our architecture compared to the existing ones. b) Development of Compiler Techniques for Management of Memory. Initially, an automated framework is presented that partitions the code and data types for the needs of data management in an object-oriented source code. The goal is to identify the crucial data types from data management perspective and separate these from the rest of the code. In this way, the design complexity is reduced allowing the designer to easily focus on the important parts of the code to perform further refinements and optimizations. To achieve this, static and dynamic analysis is performed on the initial C++ specification code. Based on the analysis results, the data types of the application are characterized as crucial or non-crucial. Continuing, the initial code is rewritten automatically in such a way that the crucial data types and the code portions that manipulate them are separated from the rest of the code. Experiments on well-known multimedia and telecom applications demonstrate the correctness of the performed automated analysis and code rewriting as well as the applicability of the introduced framework in terms of execution time and memory requirements. Comparisons with Rational’s Quantify™ suite show the failure of Quantify™ to analyze correctly the initial code for the needs of data management. A power aware data type refinement performed on the Data Link Control layer of the HIPERLAN 2 protocol is presented. Applying static and dynamic analysis on the initial specification code, the crucial data types in terms of memory access and storage are identified. Then proper data structures are selected and an efficient memory architecture is derived meeting the time constraints and reducing the energy of the system’s memories. Experimental results show a reduction of the memory energy consumption up to 37% compared with the energy consumption of the memory architecture imposed by the initial specification code.Σήμερα η ολοένα αυξανόμενες απαιτήσεις των εφαρμογών σε επεξεργαστική ισχύ καθώς και συχνή αναβάθμιση τους με νέες, είναι το έναυσμα για την προώθηση έρευνας για την ανάπτυξη συστημάτων που θα ανταποκρίνονται ολοένα και περισσότερο στις αυξημένες ανάγκες για υπολογιστική ισχύ, γρήγορη υλοποίηση, και χαμηλό κόστος. Για να ικανοποιηθούν και οι τρεις στόχοι απαιτείται η ανάπτυξη και αυτοματοποίηση βελτιστοποιημένων τεχνικών σχεδιασμού. Με τις νέες τεχνικές μεταγλώττισης τα συστήματα θα γίνουν ποιο αποδοτικά ενώ η αυτοματοποίηση των τεχνικών θα επιταχύνει καθοριστικά την διαδικασία σχεδιασμού. Το αντικείμενο της παρούσας διδακτορικής διατριβής σχετίζεται με την ανάπτυξη αρχιτεκτονικών και τεχνικών μεταφραστών για διαχείριση μνήμης σε ενσωματωμένα συστήματα. Στόχος είναι η βελτιστοποίηση της εκτέλεσης των εφαρμογών ως προς την ταχύτητα, επιφάνεια ολοκλήρωσης και κατανάλωση ισχύος στα προαναφερόμενα συστήματα. Αυτό επιτυγχάνεται με την εισαγωγή πρωτότυπων τεχνικών μεταγλώττισης αλλά και ανεύρεση βέλτιστων αρχιτεκτονικών. Επιπλέον βασικό στόχος της διατριβής είναι η αυτοματοποίηση των τεχνικών αυτών για τον γρήγορο προσδιορισμό βέλτιστων λύσεων. Η αυτοματοποίηση επιτυγχάνεται με μια σειρά από πρότυπα εργαλεία μεταγλώττισης και αποτίμησης αρχιτεκτονικών. α) Ανάπτυξη Αρχιτεκτονικών για Διαχείριση Μνήμης. Παρουσιάζεται μια αποσυζευγμένη αρχιτεκτονική επεξεργαστών με μια ιεραρχία μνήμης που αποτελείται μόνο από μνήμες scratch-pad, και μια κύρια μνήμη. Με τον όρο scratch-pad εννοούμε τις μνήμες προσωρινής αποθήκευσης όπως οι cache χωρίς όμως το κύκλωμα tag array και ελέχγου αυτού που δείχνει αν ένα δεδομένο βρίσκεται εντός ή εκτός των περιεχομένων της. Η αρχιτεκτονική αυτή εκμεταλλεύεται τα οφέλη των scratch-pad μνημών και τον παραλληλισμό μεταξύ της επεξεργασίας δεδομένων και υπολογισμού διευθύνσεων. Ο κώδικας εφαρμογής είναι χωρισμένος σε δύο προγράμματα τον πρώτο για τον υπολογισμό των διευθύνσεων των δεδομένων στην ιεραρχία μνήμης και το δεύτερου για την επεξεργασία των δεδομένων εφαρμογής. Το πρώτο πρόγραμμα εκτελείται από έναν από τους αποσυζευγμένους επεξεργαστές που ονομάζεται επεξεργαστής προσπέλασης (Access) και χρησιμοποιεί μεθόδους μεταγλωττιστών για την αποθήκευση των δεδομένων στην ιεραρχία μνήμης. Παράλληλα, ο άλλος επεξεργαστής ονομάζεται επεξεργαστής προσπέλασης (Execute) και εκτελεί το δεύτερο πρόγραμμα. Οι αποσυζευγμένοι επεξεργαστές και η ιεραρχία μνήμης είναι όλοι συγχρονισμένοι μέσω ενός απλού πρωτοκόλλου. Ο επεξεργαστής Access απαιτεί ισχυρή επικοινωνία με την ιεραρχία μνήμης που τον διαφοροποιεί έντονα από παραδοσιακά uniprocessors. Η αρχιτεκτονική συγκρίνεται στην απόδοση με την αρχιτεκτονική MIPS με cache και με scratch-pad ιεραρχίες μνήμης και παρουσιάζεται η υψηλότερη απόδοσή της. Τα πειραματικά αποτελέσματα δείχνουν ότι η απόδοση αυξάνεται μέχρι 3,7 φορές. Έναντι του MIPS η προτεινόμενη αρχιτεκτονική επιτυγχάνει την ανωτέρω απόδοση χωρίς επιβαρύνσεις σε κατανάλωση ενέργειας. Στη συνέχεια γίνεται περαιτέρω έρευνα σε αρχιτεκτονικές με Scratch-pad. Όταν εξαρτάται η ροή εκτέλεσης των εφαρμογών από τις εισόδους δεν υπάρχει πάντα η βεβαιότητα για το ακριβές περιεχόμενο δεδομένων στη scratch-pad δεδομένου ότι ο μεταγλωττιστής δεν μπορεί να προβλέψει την τυχαιότητα των εισόδων. Επιπλέον, τα τμήματα των ήδη αποθηκευμένων δεδομένων δεν μπορούν να συνδυαστούν αποτελεσματικά με τις νέες τυχαίες εγγραφές δεδομένων στη scratch-pad. Αυτό συμβαίνει επειδή όλα τα τμήματα δεδομένων αντιγράφονται στη scratch-pad χωρίς την εξέταση εάν μέρη αυτών είναι ήδη αποθηκευμένα στη scratch-pad. Η επαναχρησιμοποίηση δεδομένων που εμφανίζεται τυχαία σε αυτές τις περιπτώσεις δεν αξιοποιείται. Παρουσιάζεται λοιπόν, μια αρχιτεκτονική που είναι σε θέση να παρέχει τις πληροφορίες για το ακριβές περιεχόμενο στοιχείων της scratch-pad κατά τη διάρκεια της εκτέλεσης και μπορεί επίσης να κάνει όλες τις απαραίτητες διαδικασίες για την τοποθέτηση των νέων πακέτων δεδομένων στη scratch-pad. Με αυτόν τον τρόπο, αξιοποιείται η επαναχρησιμοποίηση δεδομένων που εμφανίζεται τυχαία και δεν μπορεί να προσδιοριστεί από το μεταγλωττιστή. Η προτεινόμενη αρχιτεκτονική σχετίζεται άμεσα με τη scratch-pad του συστήματος και το μεταγλωττιστή του επεξεργαστή. Λειτουργεί αποδοτικά όσον αφορά το χρόνου εκτέλεσης και την ενέργεια που καταναλώνεται. Συγκρίνεται με την αρχιτεκτονική MIPS με cache και με scratch-pad μνήμες και παρουσιάζει μεγαλύτερη απόδοση και μικρότερη κατανάλωση ενέργειας. Τα πειραματικά αποτελέσματα δείχνουν ότι η απόδοση αυξάνεται μέχρι 5 φορές έναντι των αρχιτεκτονικών με cache και 2.5 φορές έναντι των σύγχρονων αρχιτεκτονικών με scratch-pad ενώ η ενέργεια μειώνεται μέχρι 2.5 φορές και 1.3 φορές αντίστοιχα. β) Ανάπτυξη Τεχνικών Μεταφραστών για Διαχείριση Μνήμης. Παρουσιάζεται αρχικά μια αυτοματοποιημένη μεθοδολογία ανάλυσης που χωρίζει τα δεδομένα για τις ανάγκες της διαχείρισης δεδομένων σε έναν αντικειμενοστρεφή κώδικα. Ο στόχος είναι να προσδιοριστούν τα κρίσιμα δεδομέναόσον αφορά τη διαχείριση μνήμης και να χωριστούν αυτά από τον υπόλοιπο κώδικα. Κατ' αυτό τον τρόπο, η πολυπλοκότητα σχεδιασμού μειώνεται επιτρέποντας στο σχεδιαστή να εστιάσει εύκολα στα σημαντικά μέρη του κώδικα για να εκτελέσει τις βελτιστοποιήσεις. Για να επιτύχει αυτό, στατική και δυναμική ανάλυση εκτελείται στον αρχικό κώδικα C++. Με βάση τα αποτελέσματα ανάλυσης, τα δεδομένα των εφαρμογών χαρακτηρίζονται ως κρίσιμα ή μη-κρίσιμα. Ο αρχικός κώδικας ξαναγράφεται αυτόματα κατά τέτοιο τρόπο ώστε τα κρίσιμα δεδομένα και τα κομμάτια κώδικα που τα χειρίζονται να είναι χωρισμένα από τον υπόλοιπο κώδικα. Πειράματα σε γνωστές εφαρμογές πολυμέσων και εφαρμογές τηλεπικοινωνιών αναδεικνύουν την ακρίβεια της αυτοματοποιημένης ανάλυσης και επανεγγραφής κώδικα καθώς επίσης και τη δυνατότητα εφαρμογής της αυτοματοποιημένης μεθοδολογίας από άποψη απαιτήσεων χρόνου και μνήμης. Επίσης περιγράφεται η μεθοδολογία μεταφραστή που εισήχθη για την βελτιστοποίηση και τον προσδιορισμό της αρχιτεκτονικής μνήμης για το δικτυακό πρότυπο HIPERLAN/2. Η βελτιστοποίηση και η αρχιτεκτονική μνήμης σκοπό έχουν την αποδοτική λειτουργία του προτύπου ως προς την ταχύτητα και κατανάλωση ισχύος. Αρχικά, έγινε ανάλυση του κώδικα περιγραφής του δικτυακού προτύπου με την αυτοματοποιημένη μεθοδολογία ανάλυσης που περιγράφηκε παραπάνω. Σε αυτό το στάδιο προσδιορίζονται τα κρίσιμα ως προς κατανάλωση ισχύος τμήματα του αλγορίθμου. Στην συνέχεια εφαρμόστηκε μεθοδολογία βελτιστοποίησης των κρίσιμων αυτών τμημάτων, παράγοντας ένα νέο κώδικα βελτιστοποιημένο ως προς την κατανάλωση ισχύος. Τελικά, προσδιορίζεται η αρχιτεκτονική μνήμης σύμφωνα με την βελτιστοποιημένη έκδοση του κώδικα της εφαρμογής

    Temporal and system level modifications for high speed VLSI implementations of cryptographic core

    No full text
    Hash functions are forming a special family of cryptographic algorithms, which are applied wherever message integrity and authentication issues are critical. As time passes it seems that all applications call for higher throughput due to their rapid acceptance by the market. In this work a new technique is presented for increasing frequency and throughput of the currently most used hash function, which is SHA-1. This technique involves the application of spatial and temporal pre-computation. Comparing to conventional pipelined implementations of hash functions the proposed technique leads to an implementation with more than 75% higher throughpu

    Novel high throughput implementation of SHA-256 hash function through pre-computation technique

    No full text
    Hash functions are utilized in the security layer of every communication protocol and in signature authentication schemes for electronic transactions. As time passes more sophisticated applications-that invoke a security layer-arise and address to more users-clients. This means that all these applications demand for higher throughput. In this work a pre-computation technique has been developed for optimizing SHA-256 which has already started replacing both SHA-l and MD-5. Comparing to conventional pipelined implementations of SHA-256 hash function the applied pre-computation technique leads to about 30% higher throughput with only an area penalty of approximately 9.5%

    Efficient implementation of the Keyed-Hash Message Authentication Code (HMAC) using the SHA-1 hash function

    No full text
    In this paper an efficient implementation, in terms of performance, of the Keyed-Hash Message Authentication Code (HMAC) using the SHA-1 hash function is presented. This mechanism is used for message authentication in combination with a shared secret key. The proposed hardware implementation can be synthesized easily for a variety of FPGA and ASIC technologies. Simulation results, using commercial tools, verified the efficiency of the HMAC implementation in terms of performance and throughput Special care has been taken so that the proposed implementation doesn't introduce extra design complexity; while in parallel functionality was kept to the required levels

    Decoupled processors architecture for accelerating data intensive applications using scratch-pad memory hierarchy

    No full text
    We present an architecture of decoupled processors with a memory hierarchy consisting only of scratch-pad memories, and a main memory. This architecture exploits the more efficient pre-fetching of Decoupled processors, that make use of the parallelism between address computation and application data processing, which mainly exists in streaming applications. This benefit combined with the ability of scratch-pad memories to store data with no conflict misses and low energy per access contributes significantly for increasing the system's performance. The application code is split in two parallel programs the first runs on the Access processor and computes the addresses of the data in the memory hierarchy. The second processes the application data and runs on the Execute processor, a processor with a limited address space-just the register file addresses. Each transfer of any block in the memory hierarchy up to the Execute processor's register file is controlled by the Access processor and the DMA units. This strongly differentiates this architecture from traditional uniprocessors and existing decoupled processors with cache memory hierarchies. The architecture is compared in performance with uniprocessor architectures with (a) scratch-pad and (b) cache memory hierarchies and (c) the existing decoupled architectures, showing its higher normalized performance. The reason for this gain is the efficiency of data transferring that the scratch-pad memory hierarchy provides combined with the ability of the Decoupled processors to eliminate memory latency using memory management techniques for transferring data instead of fixed prefetching methods. Experimental results show that the performance is increased up to almost 2 times compared to uniprocessor architectures with scratch-pad and up to 3.7 times compared to the ones with cache. The proposed architecture achieves the above performance without having penalties in energy delay product cost

    Low-power architecture with scratch-pad memory for accelerating embedded applications with run-time reuse

    No full text
    Current embedded systems are usually designed for data-dominated applications, but they have a tight energy and time budget. Scratch-pad memories are completely software-controlled memories with predictable behaviour and good performance and energy characteristics, thus they tend to become a standard feature in many embedded systems. However, their predictability is not helping if the application accesses its data dynamically, when the addresses of the accessed data depend on the application's input. In such cases, predetermining the scratch-pad content at design-time is not always possible as the compiler cannot predict the runtime input. Moreover, in this case, both data reuse and data placement in the scratch-pad are inefficient because chunks of data already stored cannot be efficiently reused and combined with the runtime accessed data blocks. State-of-the art techniques copy each new data block to the scratch-pad without considering whether portions of them are already in it. Such dynamic temporal locality cannot be predicted or exploited by the compiler. The authors here present a system architecture, strongly connected to the system's scratch-pad and the processor's compiler, which is able to efficiently exploit run-time data reuse in the scratch-pad by being capable of holding valuable information, such as the exact data contents of the scratch-pad at runtime, and using it to do all the necessary operations for placing each new data block in scratch-pad. It is fine tuned for applications with run-time reuse between rectangular data blocks. The application domain of the proposed architecture is multimedia applications with run-time reuse, certain applications with linked lists and multi-threaded applications. It operates in a time and energy-efficient manner when compared with existing scratch-pad architectures without the authors' scratch-pad accelerator engine, showing its higher normalised performance and lower normalised energy consumption. Experimental results show up to 2.5 times performance increase compared with existing scratch-pad architectures and 5 times compared with cache architectures and energy decrease up to 1.9 and 3.9 times, respectively

    A decoupled architecture of processors with scratch-pad memory hierarchy

    No full text
    We present a decoupled architecture of processors with a memory hierarchy of only scratch-pad memories, and a main memory. The decoupled architecture also exploits the parallelism between address computation and processing the application data. The application code is split in two programs the first for computing the addresses of the data in the memory hierarchy and the second for processing the application data. The first program is executed by one of the decoupled processors called Access which uses compiler methods for placing data in the memory hierarchy. In parallel, the second program is executed by the other processor called Execute. The synchronization of the memory hierarchy and the Execute processor is achieved through simple handshake protocol. The Access processor requires strong communication with the memory hierarchy which strongly differentiates it from traditional uniprocessors. The architecture is compared in performance with the MIPS IV architecture of SimpleScalar and with the existing decoupled architectures showing its higher normalized performance. Experimental results show that the performance is increased up to 3.7 times. Compared with MIPS IV the proposed architecture achieves the above performance with insignificant overheads in terms of areaEuropean Design and Automation Association,The EDA Consortium,The IEEE Computer Society TTTC,IEEE Council on Electronic Design Automation, CEDA,ECSI,et a

    High-speed FPGA implementation of secure hash algorithm for IPSec and VPN applications

    No full text
    Hash functions are special cryptographic algorithms, which are applied wherever message integrity and authentication are critical. Implementations of these functions are cryptographic primitives widely used in common cryptographic schemes and security protocols such as Internet Protocol Security (IPSec) and Virtual Private Network (VPN). In this paper, a novel FPGA implementation of the Secure Hash Algorithm 1 (SHA-1) is proposed. The proposed architecture exploits the benefits of pipeline and re-timing of execution through pre-computation of intermediate temporal values. Pipeline allows division of the calculation of the hash value in four discreet stages, corresponding to the four required rounds of the algorithm. Re-timing is based on the decomposition of the SHA-1 expression to separate information dependencies and independencies. This allows pre-computation of intermediate temporal values in parallel to the calculation of other independent values. Exploiting the information dependencies, the fundamental operational block of SHA-1 is modified so that maximum operation frequency is increased by 30% approximately with negligible area penalty compared to other academic and commercial implementations. The proposed SHA-1 hash function was prototyped and verified using a XILINX FPGA device. The implementation's characteristics are compared to alternative implementations proposed by the academia and the industry, which are available in the international IP market. The proposed implementation achieved a throughput that exceeded 2,5 Gbps, which is the highest among all similar IP cores for the targeted XILINX technology. © 2006 Springer Science + Business Media, LLC

    A top-down design methodology for ultrahigh-performance hashing cores

    No full text
    Many cryptographic primitives that are used in cryptographic schemes and security protocols such as SET, PKI, IPSec, and VPNs utilize hash functions, which form a special family of cryptographic algorithms. Applications that use these security schemes are becoming very popular as time goes by and this means that some of these applications call for higher throughput either due to their rapid acceptance by the market or due to their nature. In this work, a new methodology is presented for achieving high operating frequency and throughput for the implementations of all widely usedand those expected to be used in the near futurehash functions such as MD-5, SHA-1, RIPEMD (all versions), SHA-256, SHA-384, SHA-512, and so forth. In the proposed methodology, five different techniques have been developed and combined with the finest way so as to achieve the maximum performance. Compared to conventional pipelined implementations of hash functions (in FPGAs), the proposed methodology can lead even to a 160 percent throughput increase
    corecore