Jump to content

Knowledge of Architecture + Programming

- - - - -

  • Please log in to reply
1 reply to this topic

#1
Lag

Lag

    Newbie

  • Members
  • Pip
  • 1 posts
Hello,

I signed up for the final Computer Architecture course in my college for next semester. This means a large portion of the summer dedicated towards preparing and studying.

However, I need to focus on somethings more than others, specifically ones that will benefit me programming (C++) wise. Can someone explain to me exactly how my knowledge in such concepts can affect my programming expertise? For example these are some of the topics that we will cover next semester (I know it's a long list). Can someone explain to me how some of these can help me to better my programming exactly?

Almost everything I learned on the subject has been too general or too specific for me to apply to my knowledge. As in I have a general understanding so far that knowing how hardware works will definitely affect my software design in terms of efficiency since obviously programming is done into hardware. But that's about it, I can't think of anything specific or very insightful, or at least useful to my programming expertise.

Clocks and Clock Cycles
SRAM
DRAM
Memory Hierarchy
Various types of caches (as well as measuring and improving cache performance)
architecture on performance
AMAT
Virtual Memory
Disk structure
Disk performance ad costs (controlled overhead, rotational latency etc)
Buses: types, synchronous versus asynchronous
Interfacing I/O Devices to the Processor, Memory, and OS
Memory-mapped I/O versus special I/O instructions
Polling
Interrupt driven I/O
DMA -- operations, performance, interaction with virtual memory
RAID
Network Topologies (Meshes, Corssbar Switching, multi stage)
Types of Multiprocessors (SMP, UMA, NUMA, SMP)
Multiprocessor synchronization
Pipelining
Hardware Multithreading
Flynn's Taxonomy
SISD, SIMD, MISD, MIMD multi processors
Indepth of NVIDIA GPU (some CUDA programming)

Thank you very much.

#2
Alexander

Alexander

    It's Science!

  • Moderators
  • 4,118 posts
  • Location:Vancouver, Eh! Cleverness: 200
To give a humble opinion, unless you wish to program for tight specialties, such as hardware development, systems design and hole loads of specialties that do not actually really relate to a career in C++ then it would be of little benefit. I have not seen jobs like this on the market, it is all meant for companies who hire people who specialize in these concepts. A lot of this cannot even be implemented in pure C++.
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users