Memory Systems Engineer
Role details
Job location
Tech stack
Job description
Architectural performance simulations using application traces or synthetic workloads to quantify the effects of various memory subsystems FPGA prototyping of memory subsystems in the lab for functional and performance validation. Use of off shelf FPGA boards is acceptable. Analysis of configurations of memory controllers and their impact on computer system performance Participate in SoC architecture design and analysis particularly being responsible for memory controllers Assist the engineering team in formulating and executing design verification and validation plans around DRAM controller & memory
Requirements
Must have designed a DRAM controller and tested it using either FPGA or ASICs DRAM performance modeling and characterization experience in either industrial or academic setting Correlate key application performance to DRAM subsystem capabilities either by gathering traces or by directed testing techniques in the lab. Key applications may be any one of databases, machine learning or search Working knowledge of Linux kernel with a strong preference for some development or testing work Architectural simulations of computer systems with a particular emphasis on DRAM subsystems
Required Competencies - Skills Master's Degree of Tech/EngineeringZ/Equivalent in Electronics, Computer Engineer or Computer Science FPGA design and implementation of complex systems including memory controllers C/C++ coding proficiency particularly for Linux system and for architecture simulations Benchmarking of high performance applications - one or more of databases, machine learning/AI, search indexes or streaming analytics Familiarity with DRAM internal device architecture particularly in its impact on computer performance Computer systems architecture including protocols such as CXL , PCIe and AXI Verilog/VHDL for RTL design and/or verification