diff --git a/src/components/Mixins/TableDataFormatter.js b/src/components/Mixins/TableDataFormatter.js
index 5dbe40a..e811f90 100644
--- a/src/components/Mixins/TableDataFormatter.js
+++ b/src/components/Mixins/TableDataFormatter.js
@@ -1,7 +1,7 @@
 const TableDataFormatter = {
   methods: {
     tableFormatter(value) {
-      if (value === undefined || value === '') {
+      if (value === undefined || value === null || value === '') {
         return '--';
       } else {
         return value;
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index 84a2a60..4397b2c 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -127,6 +127,7 @@
     }
   },
   "pageHardwareStatus": {
+    "dimmSlot": "DIMM slot",
     "powerSupplies": "Power supplies",
     "system": "System",
     "table": {
diff --git a/src/store/index.js b/src/store/index.js
index 8479a27..b4e030b 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -16,6 +16,7 @@
 import ServerLedStore from './modules/Control/ServerLedStore';
 import SystemStore from './modules/Health/SystemStore';
 import PowerSupplyStore from './modules/Health/PowerSupplyStore';
+import MemoryStore from './modules/Health/MemoryStore';
 
 import WebSocketPlugin from './plugins/WebSocketPlugin';
 
@@ -40,7 +41,8 @@
     sensors: SensorsStore,
     sslCertificates: SslCertificatesStore,
     serverLed: ServerLedStore,
-    system: SystemStore
+    system: SystemStore,
+    memory: MemoryStore
   },
   plugins: [WebSocketPlugin]
 });
diff --git a/src/store/modules/Health/MemoryStore.js b/src/store/modules/Health/MemoryStore.js
new file mode 100644
index 0000000..63e08e6
--- /dev/null
+++ b/src/store/modules/Health/MemoryStore.js
@@ -0,0 +1,39 @@
+import api from '@/store/api';
+
+const MemoryStore = {
+  namespaced: true,
+  state: {
+    dimms: []
+  },
+  getters: {
+    dimms: state => state.dimms
+  },
+  mutations: {
+    setMemoryInfo: (state, data) => {
+      state.dimms = data.map(({ data }) => {
+        const { Id, Status = {}, PartNumber, SerialNumber } = data;
+        return {
+          id: Id,
+          health: Status.Health,
+          partNumber: PartNumber,
+          serialNumber: SerialNumber,
+          statusState: Status.State
+        };
+      });
+    }
+  },
+  actions: {
+    async getDimms({ commit }) {
+      return await api
+        .get('/redfish/v1/Systems/system/Memory')
+        .then(({ data: { Members } }) => {
+          const promises = Members.map(item => api.get(item['@odata.id']));
+          return api.all(promises);
+        })
+        .then(response => commit('setMemoryInfo', response))
+        .catch(error => console.log(error));
+    }
+  }
+};
+
+export default MemoryStore;
diff --git a/src/views/Health/HardwareStatus/HardwareStatus.vue b/src/views/Health/HardwareStatus/HardwareStatus.vue
index 2860e59..4d29a3d 100644
--- a/src/views/Health/HardwareStatus/HardwareStatus.vue
+++ b/src/views/Health/HardwareStatus/HardwareStatus.vue
@@ -5,6 +5,9 @@
     <!-- System table -->
     <table-system />
 
+    <!-- DIMM slot table -->
+    <table-dimm-slot />
+
     <!-- Power supplies table -->
     <table-power-supplies />
   </b-container>
@@ -14,16 +17,20 @@
 import PageTitle from '@/components/Global/PageTitle';
 import TableSystem from './HardwareStatusTableStystem';
 import TablePowerSupplies from './HardwareStatusTablePowerSupplies';
+import TableDimmSlot from './HardwareStatusTableDimmSlot';
 import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
 
 export default {
-  components: { PageTitle, TablePowerSupplies, TableSystem },
+  components: { PageTitle, TableDimmSlot, TablePowerSupplies, TableSystem },
   mixins: [LoadingBarMixin],
   created() {
     this.startLoader();
     const systemTablePromise = new Promise(resolve => {
       this.$root.$on('hardwareStatus::system::complete', () => resolve());
     });
+    const dimmSlotTablePromise = new Promise(resolve => {
+      this.$root.$on('hardwareStatus::dimmSlot::complete', () => resolve());
+    });
     const powerSuppliesTablePromise = new Promise(resolve => {
       this.$root.$on('hardwareStatus::powerSupplies::complete', () =>
         resolve()
@@ -31,9 +38,11 @@
     });
     // Combine all child component Promises to indicate
     // when page data load complete
-    Promise.all([systemTablePromise, powerSuppliesTablePromise]).finally(() =>
-      this.endLoader()
-    );
+    Promise.all([
+      systemTablePromise,
+      dimmSlotTablePromise,
+      powerSuppliesTablePromise
+    ]).finally(() => this.endLoader());
   },
   beforeRouteLeave(to, from, next) {
     // Hide loader if user navigates away from page
diff --git a/src/views/Health/HardwareStatus/HardwareStatusTableDimmSlot.vue b/src/views/Health/HardwareStatus/HardwareStatusTableDimmSlot.vue
new file mode 100644
index 0000000..e8207ef
--- /dev/null
+++ b/src/views/Health/HardwareStatus/HardwareStatusTableDimmSlot.vue
@@ -0,0 +1,108 @@
+<template>
+  <page-section :section-title="$t('pageHardwareStatus.dimmSlot')">
+    <b-table
+      sort-icon-left
+      no-sort-reset
+      sort-by="health"
+      :items="dimms"
+      :fields="fields"
+      :sort-desc="true"
+      :sort-compare="sortCompare"
+    >
+      <!-- Expand chevron icon -->
+      <template v-slot:cell(expandRow)="row">
+        <b-button variant="link" @click="row.toggleDetails">
+          <icon-chevron />
+        </b-button>
+      </template>
+
+      <!-- Health -->
+      <template v-slot:cell(health)="{ value }">
+        <status-icon :status="statusIcon(value)" />
+        {{ value }}
+      </template>
+
+      <template v-slot:row-details="{ item }">
+        <b-container fluid>
+          <b-row>
+            <b-col sm="6" xl="4">
+              <dl>
+                <!-- Status state -->
+                <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
+                <dd>{{ tableFormatter(item.statusState) }}</dd>
+              </dl>
+            </b-col>
+          </b-row>
+        </b-container>
+      </template>
+    </b-table>
+  </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
+
+import StatusIcon from '@/components/Global/StatusIcon';
+import TableDataFormatter from '@/components/Mixins/TableDataFormatter';
+import TableSortMixin from '@/components/Mixins/TableSortMixin';
+
+export default {
+  components: { IconChevron, PageSection, StatusIcon },
+  mixins: [TableDataFormatter, TableSortMixin],
+  data() {
+    return {
+      fields: [
+        {
+          key: 'expandRow',
+          label: '',
+          tdClass: 'table-row-expand',
+          sortable: false
+        },
+        {
+          key: 'id',
+          label: this.$t('pageHardwareStatus.table.id'),
+          formatter: this.tableFormatter,
+          sortable: true
+        },
+        {
+          key: 'health',
+          label: this.$t('pageHardwareStatus.table.health'),
+          formatter: this.tableFormatter,
+          sortable: true
+        },
+        {
+          key: 'partNumber',
+          label: this.$t('pageHardwareStatus.table.partNumber'),
+          formatter: this.tableFormatter,
+          sortable: true
+        },
+        {
+          key: 'serialNumber',
+          label: this.$t('pageHardwareStatus.table.serialNumber'),
+          formatter: this.tableFormatter,
+          sortable: true
+        }
+      ]
+    };
+  },
+  computed: {
+    dimms() {
+      return this.$store.getters['memory/dimms'];
+    }
+  },
+  created() {
+    this.$store.dispatch('memory/getDimms').finally(() => {
+      // Emit intial data fetch complete to parent component
+      this.$root.$emit('hardwareStatus::dimmSlot::complete');
+    });
+  },
+  methods: {
+    sortCompare(a, b, key) {
+      if (key === 'health') {
+        return this.sortStatus(a, b, key);
+      }
+    }
+  }
+};
+</script>
