Jump to content

Recommended Posts

Posted

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 with being a better programmer 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 NNIDIA GPU (some CUDA programming)

 

Thank you very much.

Posted

It looks quite hardwarey your course, but that doesn't mean it can't help you with programming. C++ especially allows you to be very efficient with your programming, and by understanding how hardware works allows you to program faster, more efficient, more robust code. I'm about to start Computer Science at uni, and I'm hoping my course is quite flexible as I'm more interested in programming as you are.

Posted

Almost none of that helps for programming, infact only programming and maths helps you program, some specifics on hardware would help you if you need a program relative to that specific hardware (rare)

  • 3 months later...
Posted

Almost none of that helps for programming, infact only programming and maths helps you program, some specifics on hardware would help you if you need a program relative to that specific hardware (rare)

 

i lied :D

 

Everything to some extent is needed for programming, you may need to dip into certain aspects of them area's to optimise your program or to even get it working. What i meant to say is that a software course would be better for programming as it would teach you more about algorithms, loops, program structure, library's (in which some of the things you mentioned would be encapsulated) as well as lower end stuff like data types, memory addressing and offsets etc (c++ and the likes). Also i imagine you would be taught certain concepts in programming which can be challenging to understand from more formal tutorials such as classes and objects and when in the program they are indivisible or totally different (is-a / has-a / is-has-a many). Some advanced logical expressions may be easier to understand when taught also. In other words what you will learn WILL help you program but only if thats the area of program you wish to do, as far as programming goes itself it has its own list of modules :P

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.